使用
background-size: 100% auto
使宽度始终完美。问题在于background-position
也需要更新其值!所有62个元素都有内联 style = background-position等
。我无法从内联更新背景位置。我想首先放置背景,然后再调整大小(缩放),而不是调整大小然后再定位(缩放到错误位置)。我不确定我是否表达清楚了。为了澄清:
- 所有元素都有样式
width: 91px; height: 91px; background-size: 100% auto;
。 - 第二个图像的内联样式将为
background-position: 0 -91px
。 - 当您将鼠标悬停在该元素上时,它会获得一个样式
width: 120px; height: 120px;
,然后它会显示第2张图像的大部分和第1张图像的一部分,因为定位发生在调整大小之后=( - 如果我更改背景位置(在缩放/悬停后)为
0 -120px
,则对齐正确。(但是当不缩放/悬停时,显然是错误的。)
zoom:1.3
或 transform:scale(1.3)
是非常非常慢的。 过渡效果很慢。CSS必须比这更聪明。具有background-size的精灵......那不是不可能吧!
编辑:带有示例fiddle:http://jsfiddle.net/rudiedirkx/g4RQx/。
聪明的答案1:
background-position: 0 calc(100% / 61 * 2)
(61是因为有62张图像,2是第三张图像)。
transform: scale()
的使用变得“非常非常慢”?当你说慢的时候,是指帧率低吗?尝试使用transform: scale3d()
来强制启用硬件加速如何? - BigMacAttack