Dual Blog : DeFr's Weblog

La gestion de la transparence, vu par IE | dimanche 28 novembre 2004, 23h39

Boon, alors, au risque de passer pour un grincheux en écrivant deux posts de plaintes consécutifs, lààà, vraiment, IE m'embette, donc, je suis obligé d'en parler ici. Si, je vous assure, c'est moralement obligatoire, tout ca. Précision, oui, cela risque d'être un post relativement technique...

La situation ? Alors, vous commencez par prendre une image contenant des zones de transparence. Evidement, vous allez être embetter dès le départ avec IE si vous prenez un PNG ayant un réel canal alpha, mais bon, disons que vous utiliser un PNG avec une transparence binaire ou un GIF, pour lesquels IE reconnait à peu près la transparence. Vous pensez alors être à l'abri d'autre problème, avoir pris toutes les précautions necessaires, surtout que IE affirme supporter intégrallement le CSS 1 ? Vous n'êtes pas au bout de vos surprises...

Maintenant que vous avez votre image, avec un fond transparent, vous esperez donc voir au travers... Soyons fou, disons même que vous souhaitez pouvoir utiliser cette image avec différents font, pouvant eventuellement varier au fil du temps ? Les problèmes commencent. En réalité, il n'y a même pas besoin que la variation soit temporelle, vouloir utiliser la même image avec deux fonds de couleurs différentes suffit.

Bon, alors, d'un point de vue technique : prenez à peu près n'importe quel element, définissez à la fois une background-image et une background-color dessus en CSS, puis regarder le résultat. Ce qui est préconisé par le W3C depuis CSS1, et qui est ce à quoi on s'attend, c'est, je cite ( et je traduit après :p ) :

This property sets the background image of an element. When setting a background image, one should also set a background color that will be used when the image is unavailable. When the image is available, it is overlaid on top of the background color.

( extrait de http://www.w3.org/TR/REC-CSS1#background-image, soit en traduction : cette propriété défini l'émage de fond d'un élement. Lorsqu'on définit une image de fond, il est necessaire de préciser aussi une couleur de fond qui sera utilisé dans le cas ou l'image ne sera pas disponible. Lorsque l'image est disponible, elle est dessinée au dessus de la couleur de fond.

Au global, réellement ce à quoi on s'attend : si on définit une couleur de fond, et que l'image possède des zones transparentes, on s'attend à voir cette couleur à travers les zones transparentes. IE semble ne pas suivre cette logique, préferant ne pas mettre de couleur de fond là ou est située l'image, nous faisant voir ce qu'il y a sous l'élement considéré. Traduction pratique ? Sur ce blog, sous IE, la catégorie selectionné n'est pas du tout affichée comme elle le devrait. Au lieu de mettre du gris dans tout le fond de la cellule, seules les parties non recouverte par l'image ont un fond gris, ce qui n'est pas des plus esthétiques.

C'est d'autant plus un problème que la seule solution de substitution simple est de créer différentes images pour les différents fonds, ce qui augmente assez considérablement le poids total de la page à charger d'une part, et n'est absolument pas flexible d'autre part... J'vois bien une ou deux autres solutions à tester, mais j'aurais réellement préféré pouvoir m'en passer

P.S. : C'est passé dans l'indiférence générale, mais des tags plus sémantiques ont été mis en place, entre autre une <ul> pour la liste des liens et une <dl> pour les sections et leurs contenus

Edit : Ce post a fait l'objet de la publication d'un errata, dont je vous prie de tenir compte avant toute citation éventuelle de ce post

Le mauvais garnement à 15h33, le mercredi 01 décembre 2004
DeFr ayant eu récemment un problème entre IE et la transparence , c'est à mon tour ! En effet, comme j'en ai déjà parler dans un précédent billet , on m'as confié le codage (XHTML / CSS) d'un nouveau design pour le site MisterCado ...........

Revenir au blog
Vous souhaitez ajouter un nouveau commentaire ? Faites donc, il vous suffit de remplir le petit formulaire ci-dessous.
Sites visités