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]-->
<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]-->