Každý webdesigner už riešil nedokonalosť IE 5.5 a 6 pri zobrazovaní obrázkov formátu .png. Je mnoho riešení a každé má svoje pre a proti, no mne sa najviac zapáčil spôsob cez JavaScript. Nie je treba pridávať alfa filter cez css, to všetko zvláda spomínaný JavaScript.
Niektorí namietnu, že môže byť JavaScript vypnutý, ale to je tak nepravdepodobné, že skôr bude mať užívateľ iný prehliadač a to nám náš problém rieši samo o sebe.
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 i=0; 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 = "
+ " style="" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src='" + img.src + "', sizingMethod='scale');">"
img.outerHTML = strNewHTML
i = i-1
}
}
}
}
window.attachEvent("onload", correctPNG);
To všetko sa zakomentuje, aby kód vykonával iba IE a je to. Toľko ďalší príspevok do môjho debilníčka.