it-swarm-id.com

Bagaimana cara menggunakan PNG transparan di IE6?

Bagaimana cara menggunakan PNG transparan di IE6? Saya memiliki aplikasi perusahaan yang harus menggunakan IE6 dan harus menggunakan PNG, tetapi transparansi semua muncul sebagai warna putih pucat.

6
Mark Henderson

Ada jQuery plugin untuk ini di sini , atau skrip berikut juga melakukan pekerjaan dengan baik (sebut saja di <body onload=""> Anda;

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 mendukung PNG transparan (tapi tidak tembus). PNG hanya harus disimpan dalam format PNG8. Jika yang Anda butuhkan hanyalah latar belakang transparan dan bukan efek blending, Anda tidak memerlukan kode apa pun. Simpan saja sebagai PNG8.

6

24 cara memiliki artikel yang ditulis dengan baik tentang masalah ini:

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

1
Sean Moubry

Jika Anda setuju dengan transparansi mirip GIF (hanya di IE6), maka gunakan PNG8 + Alpha (palet, tetapi dengan transparansi semi-transparan).

Ini memberikan alpha penuh di semua browser lain. Tidak memerlukan Filter DX lambat dan rewel (yang semua IE6 PNG24 perbaikan didasarkan pada).

Fireworks dan pngnq/pngquant dapat menyimpan format ini (saya menulis Mac GUI untuk mereka).

Adobe Photoshop adalah satu-satunya perangkat lunak terkenal yang tidak mendukungnya, tetapi Anda dapat mengekspor PNG24 dan kemudian mengonversinya.

1
Kornel