CSS Sprites仍在提出新请求

时间:2012-02-20 18:47:48

标签: css performance css-sprites

我正在使用CSS sprites但是当我将鼠标悬停在它上面时,它会再次请求同一图像并导致闪烁。知道为什么要提出2个请求吗?这是我的代码:

.btn-red-lrg .left {background:url(../images/site-sprite.png) no-repeat 0px 0px transparent;width: 9px;}     
.btn-red-lrg:hover .left {background:url(../images/site-sprite.png) no-repeat 0px -37px transparent;width: 9px;}

2 个答案:

答案 0 :(得分:5)

不要'使用background-shorthand属性。请改用background-position,因为您只想更新位置。

/* no need for width, background-image etc. */
.btn-red-lrg:hover .left {background-position: 0px -37px;}

如果缓存机制不充分或者到期日期丢失/错误,则在background-image:url(...)伪类上指定:hover会导致新请求(请参阅Jeff's answer) 。无论浏览器如何,仅改变位置都不会产生新的请求。

答案 1 :(得分:1)

您使用的浏览器是什么?这是使用Internet Explorer 6时的一个已知错误。解决方案是将expires标头添加到服务器上的映像。