网上流传着解决IE6的PNG不透明的方案大致都是通过使用css滤镜,直接使用css来修正,过于繁琐,直接予以排除。大部分还是使用js来修正。网上用于修正png的js很多,但问题也很多,比如只修正png作为图片插入的情况,或必须先引入jquery,或修正效果不理想等。
现在介绍的DD_belatedPNG堪称完美。不同于其他库,其使用VML来修正IE6下的png透明。
它支持backgrond-position与background-repeat.这是其他js插件不具备的.同时还支持a:hover属性,以及<img>。
官方网址:http://dillerdesign.com/experiment/DD_belatedPNG/
来看我做的demo在IE下的效果:
没有修正的情况:

修正后的情况:

使用教程:
引入DD_belatedPNG
- <script src="DD_belatedPNG_0.0.8a-min.js" type="text/javascript"></script>
- <img src="test.png" width="410" height="170" />
- <div class="png_bg" style="background:url(test.png) 0px 0px repeat-x;height:170px;"></div>
- DD_belatedPNG.fix('.png_bg,img');
fix方法接受的参数为css选择器名。
解决IE6下背景图闪烁
- html {filter:expression(document.execCommand(”BackgroundImageCache”, false, true));}

HOHO 收藏 。。。 不是不喜欢加载任何外部JS的。。
PS和FF里面设计一下其实好像是可以直接PNG透明的。。 我的网站 那个LOGO就是这样的 , 呵呵。
呵呵,以前我也是这么做的,但太繁琐了,这个库的确强悍,强烈推荐