Przezroczystość .png w IE 6

Internet Explorer nie jest moją ulubioną przeglądarką, a już na pewno nie w wersji 6. Długa historia błędów i niekompatybilności ze standardami renderowania stron to znak firmowy tego produktu Microsoftu. Tak się jednak składa, że jest wielu internautów, którzy z IE korzystają i dobrze jest jeśli i oni mogą cieszyć się stroną, którą przygotowaliśmy.

Jednym ze znanych problemów występujących w IE 6 jest brak obsługi przezroczystości w plikach typu .png. Ponieważ na moim blogu mam takie obrazki (logo na górze i kucyk na dole), poszukałem rozwiązania dla tego problemu.

Rozwiązania, które tu przestawię to:

iepngfix

Po pobraniu paczki iepngfix.zip należy ją wypakować i udostępnić jej zawartość dla przeglądarki, czyli wystawić na jakimś adresie. Użycie skryptu sprowadza się do umieszczenia w sekcji <head> naszej strony następujących deklaracji:

<style type="text/css">
img, div, a, input { behavior: url(/resources/css/iepngfix.htc) }
</style>

W skrypcie iepngfix.htc powinniśmy też ustawić poprawnie ścieżkę do obrazka blank.gif:

IEPNGFix.blankImg = '/resources/images/blank.gif';

Dodatkowo jeśli chcemy mieć obsługę powtarzalnych (ang. repeating) teł to dodajemy linijkę (funkcja dostępna w wersji 2.0 alpha 3 iepngfixa, czyli najnowszej w chwili pisania tego wpisu):

<script type="text/javascript" src="/resources/scripts/iepngfix_tilebg.js"></script>

To wszystko.

Unit PNG Fix

Unit PNG Fix przypadł mi do gustu bardziej niż iepngfix ponieważ jest to malutki pliczek .js (plus plik graficzny clear.gif), a nie rozbudowany skrypt z zachowaniem .htc. Jego użycie jest banalnie proste. Oczywiście najpierw trzeba pobrać paczkę, rozpakować i udostępnić pliki, analogicznie jak dla iepngfix. Potem umieszczamy w sekcji <head> naszej strony wpis:

<!--[if lt IE 7]>
    <script type="text/javascript" src="/resources/scripts/unitpngfix.js"></script>
<![endif]-->

Dodatkowo powinniśmy ustawić w samym skrypcie unitpngfix.js poprawną ścieżkę:

var clear="/resources/scripts/clear.gif" //path to clear.gif

Po tych zabiegach możemy się cieszyć przezroczystymi obrazkami na naszej WWW. Sprawdziłem – działa :D

Na koniec muszę wspomnieć, że w kilku przypadkach skrypty mogą nie działać prawidłowo, np unitpngfix nie obsługuje własności background-position przez co napotkamy problem jeśli na przykład korzystamy z techniki CSS Sprites. Po szczegóły odsyłam do oficjalnej dokumentacji obu skryptów.

30. June 2009 by restless_being
Categories: Uncategorized | Tags: , , | Leave a comment

Leave a Reply

Required fields are marked *