【发布时间】:2013-05-07 12:08:06
【问题描述】:
对于一个有很多图标的应用程序,我想制作一个图像精灵。
自从我在网页设计/前端 webdev 领域开始我的“冒险”以来,我一直在想:background-position: (left)<number>px (top)<number>px; 背后的逻辑是什么
当您将此与填充或边距的简写属性进行比较时(仅指定顶部和左侧时),它们都是property: (top)<number>px (left)<number>px;
所以 top 和 left 的值是相反的。
另外,假设我有一个 64 像素(长度)x 16 像素(高度)的精灵,总共包含 4 个 16x16 图标。获取精灵中的第二个图标 (|____|_this_|___|____|),您必须输入 background-image: -16px 0px; 而不是 16px 0px(这是合乎逻辑的,因为第二个图标比第一个晚 16 像素开始)。
如果您想要一个示例(我知道 w3schools 并不总是正确的,但它可以用于示例):http://www.w3schools.com/css/tryit.asp?filename=trycss_sprites_nav
所以我的问题是:为什么 background-position 属性的所有值都像 ... 颠倒了?这背后有什么逻辑吗? CSS 是否从右向左读取属性?
【问题讨论】:
-
因为您将它们水平或垂直向后移动,如果您想使用正值重新排列您的图标,以便您要使用的第一个图标位于最底部或最右侧,这方式 thenext 图标将具有正偏移值..
-
@JEES 是的,但是为什么这个属性会向后移动而不是向前移动,就像所有其他 CSS 道具一样?有逻辑吗?
-
顺便说一句,我认为当使用只有两个值的填充/边距速记时,它们不是指
top和left,而是top and bottom和left and right。 -
即使对于其他 CSS 属性,假设您要移动某个 div 或另一个 div 内的图像,并且其原点位于 0,0 .. 您设置了一个负值以便转移它。
-
@JEES 是的!谢谢,我现在明白了。我过于关注精灵中图标位置的滑动,而不是整个精灵。 +1
标签: css css-sprites background-position