Snippet : Internet Explorer en Body CSS Class
Bout de code, Intégration HTML / CSS ☄ 3Une technique assez connue, quand vos sites n’ont pas besoin d’une feuille de style, est de mettre une classe à HTML ou BODY pour indiquer la version d’IE, grâce aux commentaires conditionnels.
Exemple dans HTML Boilerplate :
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]--> <!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]--> <!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
Je vous propose ma version (dans body, mais vous avez le choix), permettant de cibler plus finement les versions :
<!--[if lt IE 7 ]><body class="maclass is_ie6 lt_ie7 lt_ie8 lt_ie9 lt_ie10"><![endif]--> <!--[if IE 7 ]><body class="maclass is_ie7 lt_ie8 lt_ie9 lt_ie10"><![endif]--> <!--[if IE 8 ]><body class="maclass is_ie8 lt_ie9 lt_ie10"><![endif]--> <!--[if IE 9 ]><body class="maclass is_ie9 lt_ie10"><![endif]--> <!--[if gt IE 9]><body class="maclass is_ie10"><![endif]--> <!--[if !IE]><!--> <body class="maclass"><!--<![endif]-->
Du coup, les débugs IE sont bien plus propres :
.monbloc{display:inline-block} .lt_ie8 .monbloc{display:inline;zoom:1}
Tags : body, css, ie, internet explorer
2 commentaires sur ce post
J'ai un peu le sentiment que ça pourri le DOM (mais c'est peut-être moi?) t'as vraiment besoin d'une granularité aussi importante? Quand je vois :
"maclass is_ie6 lt_ie7 lt_ie8 lt_ie9 lt_ie10"
ça me fait un peu flipper...
Evidemment, ça doit être revu avant la mise en ligne.
Pas besoin de garder les classes de travail une fois que tout est réglé, et si on n'utilise que is_ie7, par exemple :)