it-swarm-tr.com

IE6'da şeffaf PNG'leri nasıl kullanırım?

IE6'da şeffaf PNG'leri nasıl kullanırım? must IE6 ve must kullanım PNG'leri kullanan, ancak şeffaflığın tümü soluk beyaz bir renk olarak ortaya çıkan kurumsal bir uygulamam var.

6
Mark Henderson

Burada bir jQuery eklentisi var veya aşağıdaki script de iyi bir iş çıkarır (sadece <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, kutunun dışındaki saydam (yarı saydam olmayan) PNG'leri destekler. PNG'nin sadece PNG8 formatında kaydedilmesi gerekir. İhtiyacınız olan tek şey şeffaf bir arka plan ve harmanlama efekti değilse, herhangi bir koda ihtiyacınız yoktur. Sadece PNG8 olarak kaydedin.

6

24 yol bu konuda iyi yazılmış bir makaleye sahiptir:

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

1
Sean Moubry

GIF benzeri şeffaflıkta sorun yaşarsanız (yalnızca IE6'da), PNG8 + Alpha (paletli, ancak yarı saydamlarla) kullanın.

Diğer tüm tarayıcılarda tam alfa verir. Yavaş ve titiz DX Filtreleri gerektirmez (bunun için hepsi IE6 PNG24 düzeltmeleri temel alınmıştır).

Fireworks ve pngnq/pngquant bu biçimi kaydedebilir (ben yazdım Mac GUI onlar için).

Adobe Photoshop, onu desteklemeyen tek önemli yazılımdır, ancak PNG24'ü dışa aktarabilir ve daha sonra dönüştürebilirsiniz.

1
Kornel