蓝天,小湖,湖水中一方小筑

IE和PNG

也不知道盖茨大叔是怎么想的,IE6居然不支持PNG的透明背景,还好在网上找到了一个方法,用到了一个没见到过的滤镜,刚试了一下,效果还算不错,就把代码贴出来吧 ,方便以后查。主要起作用的是这个滤镜:

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=‘aaa.png’, sizingMethod=‘crop’);

由于滤镜中间有源文件名,不方便调用,所以有哥们写了个javascript的脚本,方便了我等懒人啊。
首先是JavaScript的代码,用以生成HTML,以给图像加滤镜

function fix_png(f_obj)
{
if (window.navigator.appName == “Microsoft Internet Explorer”)
{
var imgStyle = “display:inline-block;” + f_obj.style.cssText
var new_html = “<span " + " style="” + “width:” + f_obj.width
+ “px; height:” + f_obj.height
+ “px;” + imgStyle + “;”
+ “filter:progid:DXImageTransform.Microsoft.AlphaImageLoader”
+ “(src='” + f_obj.src + “', sizingMethod=‘scale’);"></span>”
f_obj.outerHTML = new_html
}
else
{
return;
}
}

然后在网页文件中,只要这样调用就可以了:

<img src="xyz.png" alt="foo" width="10" height="20" onload="fixPNG(this)">