实际上,精灵仅用作背景(或者您必须设置某种复杂的裁剪)。
您需要做的是将元素的大小设置为您必须显示的相同精灵的部分,并且背景的位置等于精灵中图标的 x 和 y 坐标,从左上角开始。
取自这篇不错的文章的示例:
“项目 2”是 116x48,从 12px(x 坐标)和 70px(y 坐标)开始。
所以你的元素的CSS应该是:
.element {
width:116px;
height:48px;
background:url(sprites.png) -12px -70px no-repeat;
}
但是,如果您的元素比上述尺寸更高/更宽怎么办?然后,您必须用足够的透明/空白空间隔离该图标,以便其他图标不会出现。
如果您查看Facebook sprites,您会注意到其中一些很长,一些分组,另一些孤立。您必须针对每种情况调整精灵。
编辑:好的,我得到了你的实际需要。
使用 s 并不容易,input
因为您不能在其上使用伪元素。这里有一个解决方法。
演示
首先,将输入包装在一个 div 中:
<div class="inputWrapper">
<input type="text" placeholder="placeholder text">
</div>
然后添加一些CSS:
div.inputWrapper {
position:relative; /* that's important */
float:left; /* or display:inline-block; */
}
div.inputWrapper:after {
background:#000 url(sprites.png) 0 -2px no-repeat; /* adjust background position */
content:" "; /* whitespace needed for the pseudo-element to be displayed */
position:absolute;
top:1px; right:2px; /* some room for the borders */
width:16px; /* icon width */
height:18px; /* icon height */
}
div.inputWrapper input {
padding-right:16px; /* so the text won't go behind the icon */
}
我知道这很复杂,但另一种方法是创建另一个 http-request ......选择权在你。