(HS) Expression CSS et Internet Explorer

En cherchant à corriger un gros bug d'affichage avec IE 5 et 6, j'ai découvert une propriété CSS spécifique d'Internet Explorer. Il s'agit de la propriété "expression" qui permet d'exécuter du Javascript dans une feuille de style ! Certes, ce n'est pas un joli mélange, mais ça permet de corriger certains bugs CSS "IE only" avec une grande efficacité.

Par exemple, si vous mettez un width sur auto, mais que pour obtenir un affichage correct avec IE < 7, il vous faut mettre cette propriété à "100%", on peut s'en sortir comme ceci : width: expression(navigator.appVersion.search(/MSIE [56]/) == -1 ? "auto" : "100%"); Pas beau, mais efficace !
Encore plus intéressant, l'objet this est défini, il contient l'élément que le sélecteur CSS a capturé. Pour donner à l'élément this la même largeur que son élément parent, on peut s'y prendre comme ceci : width: expression(this.parentNode.clientWidth+'px'); A n'utiliser que pour le débogage spécial IE.
– Licence : CC BY-SA
Partagez cet article :

Commentaires

Yves  –  Site web — 2015-10-26 16:06:31

Vraiment pas mal ! ca date un peu maintenant mais bon à savoir.
j'ai mon <a href=http://jeuxetastuces.com/">site d'astuces</a> j'pense ca peut l'aider.

Julien  –  Site web — 2016-03-22 16:03:42

Je reviens sur cette petite astuce qui m'avait bien aidée mais je vois que vous mettez le code MSIE , mais qu'en est-il pour IE 10 ?

deluxeastuce  –  Site web — 2016-08-26 20:00:56

J'ai vu cela, mais aussi dans le passé, agréable vous prendre soin d'elle.

Ce post est trop ancien pour être commenté.