很久之前写了使用 background:url(#) 解决 IE bug,原理是请求一张不存在的图片,不过写法有些问题。

写为

background:url(#)

会增加一个http请求,比如当前css的URL为

http://imgcache.qq.com/qzonestyle/project/css/xxx.css

则会多请求一次

http://imgcache.qq.com/qzonestyle/project/css/xxx.css#

和以下类似(详见解决IE6.0.2800压缩HTTP数据Bug之草记

http://imgcache.qq.com/qzonestyle/project/css/xxx.css?t=20100710.css

这样写可以避免这个问题

background: url(iesucks);

——————- 亡羊补牢的分隔线 2010-7-17 ——————-

上面的测试过程有些问题,经过用真实环境重新测试这样搞效果更差,若调用该css的页面地址是

/

则会先请求

/iesucks

之后301转向至

/iesucks/

改用透明图片不太甘心,不如变态一点,直接调用该css本身,因为css已经被下载并缓存了

background: url(http://imgcache.qq.com/qzonestyle/project/css/xxx.css);