11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

j'ai bravement décidé de ne plus développer pour IE6, pensant réduire la charge de travail et coder plus proprement. Je pensais que le support du PNG 24 était complet sous IE>6 mais en fait non.
J'ai donc un site avec une navigation en ajax (qui marche aussi sans javascript, je veux pas m'attirer les foudres des puristes Smiley langue ) qui amène un contenu à changer dynamiquement.
Le bloc conteneur a un fond semi-transparent ; pour un rendu correct sous IE j'ai donc utilisé une image semi-transparente de 2x2px (pour éviter le "bug du dégradé") mais il se trouve que quand le contenu change, exit la transparence, le fond devient noir opaque et dans le même temps très moche.

Si vous avez une idée sur la façon de corriger ce problème je suis tout ouïe parce que là je sature..!

Lien : http://www.xonireth.com/monvietnam
Cliquez sur "en images" ou "Outils" successivement pour avoir un aperçu du problème.

Merci d'avance.
Modifié par MatTheCat (03 Jun 2010 - 11:59)
pourquoi tu ne définis pas une opacité en CSS ?


/* IE */
filter : alpha(opacity=50);
/* reste du monde civilisé */
opacity:0.5;
Parce que je veux uniquement le fond en semi-transparent, alors que opacity va agir également sur le contenu si je ne trompe pas.
Mais je plussoie tes commentaires Smiley lol
Bonjour,

IE7 et IE8 supportent les différents types de transparence du format PNG. Pas de problème de ce côté là.

Le problème que tu rencontres, c'est qu'IE7 et IE8 ne supportent pas opacity en CSS. Et tu as très probablement un script JS qui manipule l'opacité (element.style.opacity) dynamiquement, par exemple pour réaliser un effet de fondu. Et comment il fait le script, pour modifier element.style.opacity dans IE7 et 8 si ces derniers ne supportent pas opacity? Ben il utilise un filtre DirectX à la place, le même que tu peux utiliser en CSS avec filter: alpha(opacity=50);

Un filtre DirectX, c'est pas un support natif. La conséquence, c'est qu'on se tape souvent des effets secondaires. L'élément qui va être affiché avec une opacité partielle ne va pas être rendu par le moteur graphique «normal» du navigateur, mais directement par DirectX... avec des différences sur le mode de rendu des fontes, sur le positionnement CSS dans certains cas, et sur... le support de la transparence PNG.

En bref: dans IE7 et 8, transparence PNG + filtre DirectX alpha = bobo.
Solution: éliminer un des deux paramètres.
Clair, net et précis ; merci beaucoup Smiley smile

À quand le développement unifié pour tous les navigateurs..?!