关于IE6样式中背景图片不缓存的BUG

作者:动易网络 来源:网络转载 点击数: 发布时间:2012年10月05日

问题描述:

a{ background:url(images/normal.gif); } a:hover { background:url(images/hover.gif); }

如果为超级链接定义上述的css样式以实现鼠标悬浮时的动态效果,在firefox下是没有什么问题的,第一次加载之后,浏览器都会从缓存读取背景图片;

而IE6在这里有一个bug,它每次都从服务器端读取背景图片,结果就是,若服务器反应较慢hover效果就会出现短暂的空白,使用户体验非常不友好。 一直以来都是通过“两张背景图片合并、background-postion控制位置”的方式解决问题的,效果也是差强人意。

 

问题解决:

在这里推荐一个方法:在页面中加入一段简单的javascript脚本,告诉ie6:本地有背景图片的话就不要麻烦服务器了。 document.execCommand("BackgroundImageCache",false,true);

关于这段脚本的放置方式有两种:

1.用CSS,在css中加入如下代码

html {}{ filter: expression(document.execCommand("BackgroundImageCache", false, true)); }

2.用JS:document.execCommand("BackgroundImageCache",false,true);