it-swarm.cn

如何在IE6中使用透明PNG?

如何在IE6中使用透明PNG?我有一个企业应用程序必须使用IE6和必须使用PNG,但透明度都是淡白色。

6
Mark Henderson

有一个jQuery 这里插件 ,或者下面的脚本也做得很好(只需在<body onload="">中调用它;

function fixPNG(){

    var arVersion = navigator.appVersion.split("MSIE")
        var version = parseFloat(arVersion[1])

        if ((version >= 5.5) && (version < 7) && (document.body.filters)) 


        {
           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
              }
           }
        }

}
7
Mark Henderson

IE6支持开箱即用的透明(但不是半透明)PNG。 PNG只需要以PNG8格式保存。如果您只需要透明背景而不是混合效果,则不需要任何代码。只需保存为PNG8即可。

6
Gareth Farrington

24种方式有关于这个问题的写得很好的文章:

http://24ways.org/2007/supersleight-transparent-png-in-ie6

1
Sean Moubry

如果您使用类似GIF的透明度(仅在IE6中),则使用PNG8 + Alpha(调色板,但使用半透明)。

它在所有其他浏览器中提供完整的alpha。不需要缓慢而挑剔的DX过滤器(其中所有IE6 PNG24修复基于)。

Fireworks和pngnq/pngquant可以保存这种格式(我为他们写了 Mac GUI )。

Adobe Photoshop是唯一不支持它的值得注意的软件,但您可以导出PNG24然后进行转换。

1
Kornel