Usando PNG transparente no ie6
quinta-feira, julho 23, 2009 11:31Categoria Programação
Sem comentários
Pessoal, 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=”"
)
);
}
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 seguir todas as respostas a este post através do RSS 2.0 feed.
Você pode deixar um comentário, ou trackback do seu próprio site.