使IE6中的PNG图片背景透明
原文地址:http://www.blogkid.net/archives/1661.html
前台上的问题,今天遇到了。本来底色透明的PNG图片,到了IE6里面就出不来效果。这个时候修改图片文件是根本没用的,因为是IE6的问题。
浏览了一下网上给的几个解决办法,依靠js的基本没尝试成功。还有办法需要加一个HTC文件的,由于没有服务器的权限,也作罢了。后来找了一个使用CSS filter的办法,试了几下,最后弄成功了。问题虽小,却花了个把钟头折腾,所以把心得总结一下。
首先把要显示的图片放在一个HTML标签里,比如:
<div id=”logo”><img src=”xxx.png” /></div>
然后在相应的CSS中写这一句:
#logo{filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’xxx.png’);}
保存以后刷新一下,其实效果还没出来。因为页面上显示了两张图片,一张是来自HTML的,一张是来自CSS的。来自HTML的,当然还是有底色的。所以需要对HTML做一些修改,判断一下,如果是IE浏览器,就不装载<img>标签,使用CSS中的图片。如果不是IE浏览器,那一行CSS就不会生效,页面里会加载IMG标签。就是这样:
<div id=”logo”><![if !IE]><img src=”xxx.png” /><![endif]></div>
再次刷新,png文件就变成透明了。这个方法还有个问题就是,对于IE7,其实已经可以使PNG透明了。暂且忽略掉这个问题吧。


哈哈,这个东西之前也折腾了蛮久的,不过这个办法只适合src为png的img标签的,对以png作为背景的层来说,这个滤镜就不管用了噢,呵呵,对于定位层,链接可能会失效,哈哈,还是摒弃ie6-咯
popo说的对,这个办法问题很多,TMD
是啊。。。。连着几层。。。。ie6早该淘汰。。。。希望windows7自带的ie7能使中国客户放弃ie6我们就爽了。。。。bug太多了
少了一点:#logo{filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’xxx
应该再加上这张图片的高度甚至宽度,不然在IE中这个就显示不出来了
不过还是谢谢