lundi 23 mai 2005

Affichage PNG dans IE6

Comme je m'amuse à faire des images au format PNG (Portable Network Graphic), un peu par effet de mode mais aussi pour le découvrir, mon logo ne s'affichait pas convenablement dans IE6 car celui-ci ne le gère pas convenablement (sic!)...

Il existe un contournement grace à une instrucion CSS : !important

Cette règle appliquée à un attribut rend celui-ci prioritaire, mais comme IE ne la comprend pas, il l'ignore et se sert de l'attribut non-prioritaire...

Cette astuce permet donc des mises en formes différentes suivant le navigateur.

Ce qui donne dans mon cas pour ma classe logo :

/* Logo dans l'entete *********************************************************/
#logo {
display: block;
position: absolute;
width: 100px;
height: 100px;
right: 50px;
top: 25px;
background : transparent url(img/logo2.png) !important; /*géré par FireFox */
background : transparent url(img/logo2ie.png); /*pour IE */
}


Fini donc le gris neutre à la place de la transparence dans IE car celui-ci affiche un deuxième logo, fait sans transparence !

Espérons que IE7 sera plus complet (implémentation du canal alpha), ça nous évitera ce genre bricolage !