Aide - Recherche - Membres - Calendrier
Version complète : Le PNG transparent ne s'affiche pas sous IE ?
Forum Développeur - Administration serveur, programmation et base de données > Programmation > xHTML et CSS
titinou
Hello à tous wink.gif

En plein design de site, je me trouve fort étonné que le PNG transparent ne s'affiche aps sous IE. Pourtant, ce n'est qu'une image (ombre portée) et en transparent en PNG. Cela passe sous le merveilleux Firefox mais affiche d'autres nuances de gris avec IE sad.gif

Quelqu'un a-til déjà eu à faire ce problème ? Existe t-il une solution pour contourner tout ça ?

Merci d'avance pour votre aide wink.gif
Fred
Salut,

C'est effectivement un problème que rencontre IE.
Tu as des alternatives :
- http://support.microsoft.com/kb/294714/fr
- http://victor.carotena.net/weblog/archives/000375.php

smile.gif
mexandre
Salut
ou bien tu le fais en png-8, la transparence fonctionne. Cela dépend du type d'image que tu as car le png-8, c'est l'équivalent du gif.
titinou
Merci pour votre aide wink.gif
Une autre solution consiste à mettre les PNG dans du Flash et de les mettre ensuite en transparent wink.gif

Comme quoi tout est possible wink.gif
crashrpgmaster
j'ai le meme probleme, le png-8 ne palie pas au probleme chez moi : /
comparez avec ie et firefox :

http://scplege.com/site_z/

sad.gif en plus sous ie ca me grossi les petit point de deco lol

et jcomprend pas trop l'explication de microsoft y a til une autre solution svp ???
merci davance.
mexandre
Autre solution, intégrer dans flash avec toutes les contraintes que ça impose. :wink:
crashrpgmaster
ouai mais moi mon fond transparant est en arriere plan d'une cellule et je ne peux pas y mettre de flash :/
je lis partout que en png-8 ca fonctionne pourquoi pas moi !!! lol
crashrpgmaster
ok ca marche en png-8 mais c super moche !!
crashrpgmaster
sinon vu que mon fond est une simple image de 10px/10px d'une couleur uni a 75%, je peux pas faire autrement ?
du css peu etre ? php ?
mexandre
Tu as ce code :
http://dream.media-box.net/post_recherche_13381-.html
Mais qui ne marche pas en background. Ce qui veut dire que pour faire un background, tu dois créer un bloc positionné avec CSS, placer ton image dans ce bloc et attribuer un z-index pour superposer le bloc.

Ou bien attendre IE 7, en espérant que le bug sera résolu. :wink:
crashrpgmaster
il sort quand IE7 ? lol
je suis pas tres patient de tout facon j'aimerai finir mon site version 2005 avant 2006 si possible lol

j'ai essayé ce code mais il na pas fonctionné, mon fond transparent est en background de cellule c normal que ce code ne marche pas c ca ?
mexandre
Tu n'as pas lu mon post. Ton image tu ne la place pas en background, mais à l'interieur de ton div, tu la place avec une balise
crashrpgmaster
oki donc le code devrai marcher ?

j'ai mis :

CODE




<?php

require_once("includes/ie_png.php");

?>




dans mon index ou ce trouve ma cellule a fond transparent, dans le head.

j'ai créer :


CODE


<!--[if gte IE 5.5000]>

<script language="JavaScript">

function correctPNG() // correctly handle PNG transparency in Win IE 5.5 or higher.

{

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

var imgAttribs = img.attributes;

for (var j=0; j<imgAttribs.length; j++)

{

var imgAttrib = imgAttribs[j];

if (imgAttrib.nodeName == "align")

{

if (imgAttrib.nodeValue == "left") imgStyle = "float:left;" + imgStyle

if (imgAttrib.nodeValue == "right") imgStyle = "float:right;" + imgStyle

break

}

}

var strNewHTML = "<span " + imgID + imgClass + imgTitle

strNewHTML += " style="" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"

strNewHTML += "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"

strNewHTML += "(src='" + img.src + "', sizingMethod='scale');"></span>"

img.outerHTML = strNewHTML

i = i-1

}

}

}

window.attachEvent("onload", correctPNG);

</script>

<![endif]-->





dans mon_site/includes/ie_png.php
index.php etant dans mon_site/

et ca marche pas c bien ca qu'il faut faire ?
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.