Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jonikaites

PNG com fundo transparente

Recommended Posts

Bom Dia, amigos.Fiz uma imagem em PNG e preciso que ela apareca transparente, mas no Internet Explorer ela fica com o fundo cinza.No Firefox e no Opera ela aparece normalmente, com o fundo transparente.Alguem tem alguma dica?Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

achei um bug-fixer pra q no ie aparecam as imagens png transparentes...

 

incluir no <head>:

 

<script defer type="text/javascript" src="pngfix.js"></script>

 

Conteúdo do pngfix.js:

 

/* Correctly handle PNG transparency in Win IE 5.5 & 6.http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.Use in <HEAD> with DEFER keyword wrapped in conditional comments:<!--[if lt IE 7]><script defer type="text/javascript" src="pngfix.js"></script><![endif]-->*/var arVersion = navigator.appVersion.split("MSIE")var version = parseFloat(arVersion[1])if ((version >= 5.5) && (document.body.filters)) {   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	  }   }}

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o meu deu certo, mas aparece um X daqueles quando a imagem da pau e nao pode ser exibida, mas a imagem está la, e o X em cima dela.alguem sabe como solucionar isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No FF e no IE 7 funciona a imagem transparente normalmente. No IE 6 n consegui.. esta com o fundo cinza.Eu tenho q colocar o nome da imagem em algum lugar desse javascript? Se tem, eu n sei onde.Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se já conseguiu mais ai vai outra solução, com CSS

* 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=""   )	 );	}

Note essa linha:

(this.src="blank.png").substr(0,0)

você deve criar uma imagem que seja 1x1 transparente e colocar o caminho dela nessa linha.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usei o codigo da jonikaites e funcionou legal, só nao funcionou com um png q esta como background num css.

Alguém sabe como solucionar isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.