PNG z kanałem alpha
Internet Explorer 6 nie potrafi normalnie wyświetlać grafik PNG z kanałem alpha. Odmiana 24+8 bit wyświetlana jest z szarym tłem, a odmiana 8+8 ma degradowaną przezroczystość do 1 bitu.
Rozwiązanie
Istnieją liczne obejścia tego problemu. Wszystkie wykorzystują niestandardowe rozszerzenie IE — filtry ActiveX.
Otóż ten hack w praktyce nie nadaje się na nic więcej, niż pokazanie pojedyńczego obrazka, że „działa”, ponieważ:
- będąc filtrem działa tylko na obiekty mające bug hasLayout.
- bardzo źle działa jako tło elementów w CSS — ignoruje
background-position
ibackground-repeat
oraz przezroczystość również działa na zawartość elementu czyniąc tekst nieczytelnym. - nie drukuje się
-
<img/>
wymaga podaniawidth
iheight
. - powoduje dziwne bugi.
Przykłady zastosowania PNG
Menu z ładnie zaokrąglonymi rożkami i dowolnym, zmiennym tłem można wykonać poprzez zasłonięcie koloru tła w rogach przez pozycjonowaną grafikę tła.
W IE to działa, póki używa się 1-bitowej przezroczystości, ale to daje brzydkie poszarpane rogi. PNG z alpha będzie szarym plackiem albo, jeśli zastosuje się filtr, rozciągnie się na cały element zamiast pozostać w rogu.
Podobne problemy są, gdy chce się dodać poziomy cień pod elementem. Filtr spowoduje zignorowanie background-repeat
i rozciągnie cień na cały element.
Problematyczne w IE jest też przezroczyste tło pod tekstem. Normalnie ustawia się PNG jako tło i tyle. Niestety filtr w IE spowoduje zaaplikowanie przezroczystości nie tylko na tło, ale i na cały tekst, czyniąc go bladym i nieczytelnym.
Zmodyfikowano: 20.03.2007, 00:48