(X)HTML, CSS, JavaScript, AJax & PHP
RSS icon Email icon Bullet (black)
  • PNG Transparente no Internet Explorer 6 e 5 (solução definitiva)

    Posted on janeiro 20th, 2009 Carlos Roberto 14 comments

    Bom, acho que hoje é o dia mais feliz desse ano pra mim e creio que sera para muitos de vocês também, fiquei tão feliz em encontrar isso que quis compartilhar com vocês!

    Recentemente aqui na agencia, me apresentaram uns layouts bem complicados de se montar, envolvendo transparencias que só eram possiveis com PNG transparente.

    Imagine ter que criar um layout onde o background é uma mistura de degrade com textura e o conteúdo possui uma dropshadow em degrade e transparente (isso mesmo a sombra é um degrade com transparencia), são varios pesadelos juntos. Ai tive que correr atrás!!

    Tem a solução tradicional que muitos devem conhecer:

    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='imagem.png');
    

    Mas esta tem várias complicações de implementação.

    Tinhamos a solução do iepngfix do site:
    http://www.twinhelix.com/css/iepngfix/

    E a solução que veio para criar um marco na história do webdesign:

    DD_belatedPNG (a solução definitiva)

    Essa é uma biblioteca javascript desenvolvida por Drew Diller no site:

    http://www.dillerdesign.com/experiment/DD_belatedPNG/

    Download da biblioteca ->http://www.dillerdesign.com/experiment/DD_…edPNG_0.0.7a.js

    Um pequeno script que nos da o poder de usar livremente imagens PNG tanto no IE6 como no IE5, seja a imagem simplesmente inserida no documento ou como background de um elemento.

    E o melhor de tudo é que tem suporte para background-repeat e background-position.

    O uso é bem simples como mostro abaixo:

    basta colocar o nome do seletor css onde esta declarado o background png ou a tag img na função

    
    <script src="DD_belatedPNG_0.0.7a.js" type="text/javascript"></script>
    <!--[if lte IE 6]>
    <script type="text/javascript">
    DD_belatedPNG.fix('#div1');
    </script>
    <![endif]-->
    

    ou

    
    <!--[if lte IE 6]>
    <script src="DD_belatedPNG_0.0.7a.js" type="text/javascript"></script>
    <script type="text/javascript">
    DD_belatedPNG.fix('img');
    </script>
    <![endif]-->
    

    e ainda podemos juntar tudo:

    
    <!--[if lte IE 6]>
    <script src="DD_belatedPNG_0.0.7a.js" type="text/javascript"></script>
    <script type="text/javascript">
    DD_belatedPNG.fix('#div1, #div2, img');
    </script>
    <![endif]-->
    

    nota: lte” no comentário condicional para versões menores ou iguais a versão 6 do IE

    Segue abaixo o link do demo que fiz, onde coloquei uma imagem com sombra transparente como background de algumas divs e por ultimo a propria imagem no documento:

    Link DEMO

    Preview no IE5:

    pngfix

    • Share/Save/Bookmark

    Posts relacionados

    • Nenhum post relacionado
    1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (6 votes, average: 5,00 out of 5)
    Loading ... Loading ...
     

    14 Responses to “PNG Transparente no Internet Explorer 6 e 5 (solução definitiva)”

    1. muito bom
      vai economizar muito serviço
      hehehe
      vlw ae

    2. realmente!

      é uma solução bem simples de se implementar.

    3. muito bom, o meu ta repetindo o background na vertical e eu ja deixei como background: no-repeat;
      aconteceu com alguem? ou alguem tem alguma solução .

      obrigado.

    4. Olá Paulo!

      Se puder mostrar um link do seu código terei o prazer em ajudar!

      Eu já utilizei esse script de diversas maneiras e nunca tive problemas!

    5. Obrigado pela atenção, descobri oque era, eu tinha setado background-position como center left, ai deu conflito com o java.

      Obrigado pela atenção.

    6. Testando.

    7. Eu não sou de comentar em foruns! mais esse não pude deixar de comentar, a solução realmente é definitiva!
      Parabens para o desenvolvedor dessa biblioteca!
      E Parabens com obrigado para quem postou o conteúdo neste forum, foi muito útil mesmo.

    8. Eu n cosegui, alguem pode me ajudar; o arquivo baixado deve ficar junto cm o html?

      desde ja obrigada…

    9. Olá Vanessa!

      De que maneira você fez?

      Deu uma olhada no link demo que coloquei no post?

      http://www.carlosroberto.hbe.com.br/im/png/testpng.html

    10. Eu coloquei o codigo dentro do head e a outra parte que baixei, eu coloquei dentro da mesma pasta que estão os arquivos html…

    11. Me add no msn por favor…

      vanessa.ibau@hotmail.com

      mto obrigada…

    12. Obrigada, Carlos!
      Ótima solução!

    13. olá!
      me parece ser uma otima solucao,
      mas quando implementei, o IE6 fica exibindo
      aquele alerta de popup sabe…pedindo confirmacao antes de exibir corretamente..
      alguem sabe como resolver isto?
      meu fonte ficou exatamente igual ao seu no exemplo.

      Abracos!

    14. Muito massa, vlw

    Leave a Reply

    CAPTCHA image