«

IE6下实现PNG图片透明

时间:2024-1-24 09:24     作者:韩俊     分类: Html+Css


我们都知道使用PNG图片的透明或半透明的特性能做出非常漂亮的网页来。Firefox和Opera对PNG的支持都没问题,都是IE却无视PNG图片这个优秀的特性,虽然现在IE7已经支持了,但是IE6却还是不行。具体的问题就是在IE6中的".png"格式的图片会无端的被加上了灰色的背景。对于这种问题,网上有很多解决问题的办法,作者经过实践也总结出了几种办法解决这个问题,现记录如下。
 
(1)使用javascript实现ie6下png图片透明,具体代码如下:

<script language="javascript">
function TransparentPNG(){
    for(var i=0;i<document.images.length;i++){
        var img=document.images[i];
        var imgName=img.src.toUpperCase();
        if(imgName.substring(imgName.length-3, imgName.length)=="PNG"){
            var imgID=(img.id)?"id='"+img.id+"' ":"";
            var imgClass=(img.className)?"class='"+img.className+"' ":"";
            var imgTitle=(img.title)?"title='"+img.title+"' ":"title='"+img.alt+"' ";
            var imgStyle="display:inline-block;"+img.style.cssText;
            if(img.align=="left"){
                imgStyle="float:left;"+imgStyle;
            }
            if(img.align=="right"){
                imgStyle="float:right;"+imgStyle;
            }
            if(img.parentElement.href) imgStyle="cursor:hand;"+imgStyle;       
            var strNewHTML="<span "+ imgID+imgClass+imgTitle+"style='"+"width:"+img.width+"px;height:"+img.height+"px;"+imgStyle+"';" +"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"+"(src='"+img.src+"', sizingMethod='scale');></span>";
            img.outerHTML=strNewHTML;
            i=i-1;
        }
    }
}
window.attachEvent("onload",TransparentPNG);
</script>

(2)引入png格式图片的时候按如下写法:

<div align="center" style="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='png图片路径',sizingMethod='image');"></div>

(3)使用国外牛人写的一个插件:

插件下载地址:http://www.dillerdesign.com/experiment/DD_belatedPNG/#download

压缩版直接下载地址:http://www.dillerdesign.com/experiment/DD_belatedPNG/DD_belatedPNG_0.0.8a-min.js

在页面中加入如下代码:

<!--[if IE 6]>
<script type="text/javascript" src="http://www.maopiaopiao.com/js/DD_belatedPNG_0.0.8a-min.js"></script>
<script type="text/javascript">DD_belatedPNG.fix('.pngFix');</script>
<![endif]-->

以上将会将所有class属性值为pngFix的png图片的背景设置为透明的。

以上方法个人推荐使用第三种方法。

标签: javascript html css

热门推荐