À cause de sa faible prise en compte des standards web, Internet Explorer (que j'abrégerai par la suite en IE) fait l'objet de nombreux hacks CSS (J'en use et abuse parfois, voir l'article Des règles CSS pour un résultat identique selon le navigateur).
L'inconvénient de ces hacks CSS, c'est qu'ils utilisent des failles connues des navigateurs et vous n'êtes pas à l'abri qu'elles soient corrigées dans une version supérieure.
Avec la diffusion massive d'IE7 (que le logo est moche!) qui résout certains bugs de la version 6 et rend inopérant certains hacks CSS (star-html, tantek, selecteurs parent et adjacent entre autre), on se rend compte (j'aurais mis le temps!) qu'il faut éviter les hacks CSS et préferer les commentaires conditionnels.
Les commentaires conditionnels sont des commentaires HTML spécifiques qu'IE sait interpréter contrairement aux autres navigateurs.
Les commentaires conditionnels existent sous 2 formes: positive ou négative.
Les commentaires conditionnels positifs exposent leur contenu seulement aux navigateurs pour lesquels la condition est vérifiée (Cela sous-entend les versions IE de la condition).
Les commentaires conditionnels négatifs exposent leur contenu aux navigateurs pour lesquels la condition n'est pas vérifiée (autrement dit, tous les autres navigateurs: Firefox, Safari, Mozilla... ET les versions d'IE qui n'entrent pas dans la condition).
La syntaxe d'un commentaire conditionnel positif est:
<!--[if condition]> HTML <![endif]-->
Et celle d'un commentaire conditionnel négatif est:
<!--[if condition]><![IGNORE[--><![IGNORE[]]> HTML <!--<![endif]-->
condition est une des conditions suivantes:
IE : Toutes versions d'IElt IE version: Toutes versions d'IE inférieures à versionlte IE version: Toutes versions d'IE inférieures ou égales à versionIE version: Seulement la version version d'IEgte IE version: Toutes versions d'IE superieures ou égales à versiongt IE version: Toutes versions d'IE superieures à versionversion est la version d'IE ciblée: 5, 5.5, 6 ou 7.
HTML est le code HTML qui sera interprété par le navigateur selon que la condition est vérifiée ou non. Quand le code HTML est interprété par le navigateur, il est placé à droite de l'emplacement du commentaire dans le flux du document.
Dans le cas où vous souhaitez faire un commentaire conditionnel négatif dont la condition s'applique à IE en général et pas à une version précise, vous pouvez utilisez le code suivant, plus simple:
<!--[if !IE]><--> HTML <!--><![endif]-->
Il est bon de préciser que la syntaxe des commentaires conditionnels négatifs est susceptibles de provoquer des erreurs de parsing dans un document XHTML traité en tant que XML. Traduction: cette syntaxe n'est pas valide XHMTL.
Commentaires Récents