Banner
Strona główna arrow Artykuły arrow Poprawka wyświetlania plików PNG w IE03 Wrz 2010, 12:47
Menu serwisu
Strona główna
Archiwum
Artykuły
Czym jest Mambo?
Licencja Mambo
Napisz do nas
Szukaj
Mambo FAQ
Samouczki
Szablony WWW
Forum
Download
Przydatne lektury
Mambo hosting - PROMOCJA
- - - - - - -
Sklep komputerowy
Księgarnia biznesowa
Książki o Mambo

Mambo - tworzenie wydajnych serwisów internetowych    Mambo - ćwiczenia
 39,00 zł               19,00 zł 
Ciekawe książki:


   23,70 zł        19,97 zł
e-książki, e-prasa
Rejestracja domen
Polecamy
Odwiedza nas 51 gości
    
Poprawka wyświetlania plików PNG w IE Print E-mail
Napisał Dylek   
13 Maj 2005, 21:32

Kiedy zaczynałem uzupełniać w treść serwis andy-stewart.com, zdecydowałem się na zamianę wielu standardowych ikonek z Mambo na swoje własne - aby nadać temu osobisty wydźwięk. Nabyłem ostatnio sporo ikonek w formacie PNG i właśnie ich zdecydowałem się tu użyć.

Inny powód, dla którego użyłem PNG, to problemy jakie miałem z przezroczystością GIFa, zwłaszcza gdy definiowałem obrazy z rzucanym przez nie cieniem. Efektem były małe, białe obszary wokół cienia, które tandetnie wyglądały umieszczane na kolorowym tle. Format PNG obiecywał pozbycie się tych problemów - i na pewno w przeglądarkach Opera i Firefox to się udało. Niestety Microsoft w całej swojej mądrości nie zaimplementował poprawnej przezroczystości PNG i zostałem z szaro-niebieskim tłem wszystkich moich nowych ikonek.

Szybkie przeszukanie Google dało mi różne rozwiązania powyższego problemu w Internet Explorerze, a poniższy fragment kodu jest najbardziej elegancki, jaki znalazłem. Elegancki dlatego, że jeśli nie używasz IE, twoja przeglądarka zignoruje ten kod.

<!--[if gte IE 5.5000]>
<script language="JavaScript">
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 or higher.
   {   
   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
             }
      }
   }
window.attachEvent("onload", correctPNG);
</script>
<![endif]-->


Umieść powyższy kod pomiędzy znacznikami sekcji <head> ... </head> w pliku index.php twojej templatki, a szaro-niebieskie tło PNG zniknie! Jest drobne opóźnienie pomiędzy załadowaniem strony, a poprawnym wyświetleniem przezroczystości PNG, ale nie dramatyczne.

Wszystko, czego teraz potrzebujemy od Microsoftu - to trzymanie się standardów, a wszystko co widzicie powyżej stanie się niepotrzebne.... do czasu. :)

Oryginał tego dokumentu zaczerpnięto za zgodą autora ze strony Troozers Learns to Mambo
Polska adaptacja: Dylek, MamboPL.com Team


<Previous   Next>
    
Promocja z VEL.pl

Polecamy eHost.pl

eHost.pl
gotowe skrypty, statystyki, panel administracyjny, konta email
testuj za darmo!!!

TwójKiosk.pl
Nasi partnerzy
miaCMS
LinkiSEO.pl
LinkMe
JoomlaPL.com
Avast, NOD32, Kaspersky, ArcaVir


Design & CSS © 2004 Bolo - Wszelkie prawa zastrzeżone.

Mambo is Free Software released under the GNU/GPL License.