首页 > 新闻资讯 > 网页设计 >

IE6下png图片,png背景兼容方法

作者:尚祺网络 来源:本站 浏览数:2673 发布时间:2011-4-28 17:08:15

在网页设计时,我们也许会用到png格式图片。应用PNG图片的透明或半透明的特性能做出非常漂亮的网页来。Firefox和Opera对PNG的支持非常的好,都是IE却无视PNG图片这一特性的“存在”,虽然IE7已经支持都是IE6还是不行。查了一些资料,基本解决了这一问题,兴奋中索性拿出来和大家分享:
 

png图片在IE6中不兼容效果:


png背景在IE6中不兼容效果:


png图片,png背景都兼容效果:


png图片在IE6下兼容方法:
png图片的兼容,可以用js。如果在网页中直接插入png图片想使其透明只需加入以下js代码,整个页面内的所有直接插入的png图片都可以实现透明:
<script language="JavaScript">
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
    var arVersion = navigator.appVersion.split("MSIE")
    var version = parseFloat(arVersion[1])
    if ((version >= 5.5) && (document.body.filters))
    {
       for(var j=0; j<document.images.length; j++)
       {
          var img = document.images[j]
          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
             j = j-1
          }
       }
    }  
}
window.attachEvent("onload", correctPNG);
</script>

png背景兼容方法:
如果是想使用png做背景透明的话,需要用到css滤镜。如:

CSS代码:.secondtitle{ margin-top:-80px; width:100%;
               background:url(../images/bannerbg.png) no-repeat; height:150px;   /* for ie7 ff*/ 
              _background:none;   /* for ie6 ff*/ 
              _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../images/bannerbg.png', sizingMethod='crop'); /* for ie6 ff*/ 
}

HTML代码:<div  class="secondtitle" ></div>