CSS 中背景图片定位

Sep 21st, 2008 Add Comment

今天在弄一个 JavaScript 动画效果, 需要处理 CSS 中的 background-position. 想试一下我陌生的百分比处理方式, 发现了一个不错的文章, CSS: Using Percentages in Background-Image . 稍整理了一下...

1. 关键字, 例如: background-position: top right;

优点: 直观, 可用性高, 各浏览器中表现一致.
缺点: 缺少间隔尺寸. 三个垂直的 (top, center, bottom) 和三个水平的 (left, center, right) 只能为你组合出最多 9 个位置. 不存在其他混式的组合. 并且很难像其他两种数值定位方法一样使用算数进行控制.

2. 像素, 例如: background-position: 0px 0px;

优点: 概念容易被理解, 只要知道如何测量容器左上角和图片左上角之间的距离, 就能准确地推测出图片显示的位置. 像素还能够精确的用数学来控制定位.
缺点: 你必须知道确实的值.
原理, 如图. 其实就是图片左上角相对于容器左上角的坐标关系.
Pixels

3. 百分比, 例如: background-position: 80% 50%;

优点: 可以使用数学来控制定位, 并且比像素定位更加灵活.
缺点: IE 中无法处理复杂的百分比定位. 你可以看看这个测试.
原理, 如图. 与像素定位不同, 它的百分比位置是指容器和图片内部的相应位置作为显示的位置.
Percentages

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: CSS 中背景图片定位

  1. http://1.gravatar.com/avatar/b93ff8ed67383561d1fe347c7aaf6dc7?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G
  2. http://1.gravatar.com/avatar/b1b6d60514ecd9973f0fb1329669ce01?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    Thanks! It helps me a lot.

  3. http://0.gravatar.com/avatar/4acc777fad370f6cca188bade4fc09ed?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G
  4. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @凯尔
    嗯, 我也想过屏蔽 Quote, 以后可能会加个参数.

  5. http://0.gravatar.com/avatar/e7cd768b796a268f6802455b4d1e4afa?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    呀呀,顶部的Search切换很有爱啊~~

  6. http://0.gravatar.com/avatar/e7cd768b796a268f6802455b4d1e4afa?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    用了Quote,最好在Recent Comments里面将Quote屏蔽。

  7. http://0.gravatar.com/avatar/e7cd768b796a268f6802455b4d1e4afa?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    JAY :
    图很有爱~

    +1

    百分比还是用得比较少,一般情况我不愿意看到图片自己的缩放,这样经常会看到不期望的锯齿。但是如果是做自适应分辨率的主题,可能会比较有用。

  8. http://1.gravatar.com/avatar/ffa60157af668384f5325116efd02385?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    学习了,关于背景的css属性我一般只用到no-repeat哈。

  9. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @JAY
    貌似插件 WP Ajax Edit Comments 是将按钮直接放在评论内容内.
    暂时不用这插件吧, 呵呵~
    谢谢呢~

  10. http://1.gravatar.com/avatar/10e5731d1a8aed7f69f55e9f6dbc92d7?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    JAY :
    图很有爱~
    Click to Edit  (4 minutes and 6 seconds)

    貌似Quote功能有点问题,这个会把AjaxEditComments的代码也Quote出来。

  11. http://1.gravatar.com/avatar/10e5731d1a8aed7f69f55e9f6dbc92d7?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G
  12. http://0.gravatar.com/avatar/4233f9a9b6ecb29f728ebf2c40b59411?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    mg12 :@PatrickSorry, 我发了老版本的给你. 现在给你个最新的, 请查收邮箱附件.

    呵呵,昨晚鼓捣半天,我还以为是我的博客问题呢 :sad:
    已经用上新的,一切正常,再次表示感谢!~~

  13. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @Patrick
    Sorry, 我发了老版本的给你. 现在给你个最新的, 请查收邮箱附件.

  14. http://0.gravatar.com/avatar/c1834913e0459af48c2bcb63a641b223?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    写得不错~转转~

  15. http://0.gravatar.com/avatar/4233f9a9b6ecb29f728ebf2c40b59411?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    mg12 :@Patrick1. 可以的. 请查阅你的邮箱...2. 这个我已经写过教程了, 请看: http://www.neoease.com/wordpress-menubar-4/

    插件我已经用上,调用是这样的《?php wp_mostactives('limit=5&avatar=true'); ?》
    但是点击lazy按钮为什么它不会翻页呢?

  16. http://0.gravatar.com/avatar/490cf262668eebb0f0f1a50d9d48d702?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    @Patrick
    1. 可以的. 请查阅你的邮箱...
    2. 这个我已经写过教程了, 请看: http://www.neoease.com/wordpress-menubar-4/

  17. http://0.gravatar.com/avatar/4233f9a9b6ecb29f728ebf2c40b59411?s=32&d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    哇,终于等到你回来了 :smile:
    有两件事请教:
    1、你的侧边栏Most Active Guys这个功能使用的插件可不可以发给我一个啊?我用的是Blocks的主题,也很想使用这个插件
    2、那个侧边栏日志分类如何实现鼠标放上以后子分类自动显示的,可以指点一下么?
    谢谢!

  18. http://1.gravatar.com/avatar/7060dfb9a4706f749898fb7b915aa5da?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    图片很帅..

    其实这东西米难度, 一点都米难度.
    自己体会就是了.

  19. http://1.gravatar.com/avatar/7060dfb9a4706f749898fb7b915aa5da?s=32&d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D32&r=G

    无语.. 这里还有沙发..

  1. Loading...