我正在使用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;}
答案 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标头添加到服务器上的映像。