修复IE6 PNG不透明问题的最佳解决方案

December 2, 2011
author: feeldesignstudio.com

IE6是不支持透明的PNG的,虽然每个web开发人员都恨死了IE6,但是在我们伟大的祖国,IE6的用户还占着极大的数量优势,所以我们不能随意的抛弃他们。

有个很稳妥的解决方案,在IE6下使用png-8或者gif替换,但是你懂png-8或者gif的透明有多丑的。其他的解决方案也有很多,比如用filter滤镜等等(解决方案1解决方案2),但是都会有或多或少的问题,比如尺寸问题、background-position和background-repeat属性支持的不完善问题等等。

今天给大家介绍的是我平时用的解决方案——DD_belatedPNG,这个是暂时来说最好的解决方案了,他使用微软的VML语言对PNG图片进行重新绘制,以达到半透明的效果,所以对所有的样式支持的很好,你可以把png图片用于<IMG/>或者background-image

官方网站 点我下载

其使用方法很简单,在head标签中插入如下代码:

<!--[if IE 6]>
<script type="text/javascript" src="http://dillerdesign.com/experiment/DD_belatedPNG/DD_belatedPNG_0.0.8a-min.js"></script>
<script type="text/javascript">
 DD_belatedPNG.fix('.png');
 /* .png是所有应用了透明PNG的CSS选择器,你可以用你自己的选择器,比如 DD_belatedPNG.fix('.box a:hover');
 对于:focus和:hover伪类,可以用DD_belatedPNG.fix('.png, a.png:hover, .png:focus');
 */
</script>
<![endif]-->
Tips: 评论也可以匿名哦,不一定注册的,只需要勾选匿名评论(I'd rather post as a guest)即可