Usando PNG transparente no ie6

quinta-feira, julho 23, 2009 11:31

PNG FilePessoal, devido ao uso do IE6 “AINDA”, utilizo muito ícones em PNG com transparências. Tive que usar um método para que a transparência não ficasse cinza no IE6.

Sou contra usar códigos (“gambis”) para o IE6, mas sei que muitos deixam de usar o PNG por causa desse IE6, então, segue abaixo procedimento para que continuemos usando PNGs transparentes.

Utiliza-se um arquivo de 1 pixel transparente em PNG, que pode ser baixado aqui:

Aí, utilizamos uma classe CSS para que faça a interpretação da transparência sobre as imagens PNG:

/* Alpha PNG support for IE
——————————

\*/

* html img/**/ {
filter:expression(
this.alphaxLoaded ?
“” : (
this.src.substr(this.src.length-4)==
“.png”
?  (
(!this.complete)

? “” :
this.runtimeStyle.filter=(“progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’”+this.src+“‘)”)+
(this.onbeforeprint=
“this.runtimeStyle.filter=”;this.src=’”+this.src+“‘”).substr(0,0)+
String(this.alphaxLoaded=true).substr(0,0)+
(this.src=“blank.png”).substr(0,0)):
this.runtimeStyle.filter=
“”));
}
* html img/**/ {
filter:expression(
this.alphaxLoaded ? “” :
(
this.src.substr(this.src.length-4)==”.png”
?
(
(!this.complete)
? “” :
this.runtimeStyle.filter=
(“progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’”+this.src+”‘)”)+
(this.onbeforeprint=”this.runtimeStyle.filter=”;this.src=’”+this.src+”‘”).substr(0,0)+
String(this.alphaxLoaded=true).substr(0,0)+
(this.src=”images/blank.png”).substr(0,0)
)
:
this.runtimeStyle.filter=”"
)
);
}
Você pode deixar um comentário, ou trackback do seu próprio site.
Tags: , ,

Deixe uma resposta