关于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);