Implémentés dans les versions Windows d'Internet Explorer depuis la version 5.0, les commentaires conditionnels sont
utilisables dans toutes les pages HTML et XHTML marquées text/html, ainsi que dans des pages XSLT.
Vous l'aurez compris, extensions des balises de commentaires, ils ne seront pas interprétés dans les autres navigateurs et
permettent un codage propre.
Microsoft propose deux versions de ces commentaires, les Downlevel-hidden et les Downlevel-revealed. Si les premiers
sont compatibles avec les normes HTML (W3C), il n'en est pas de même pour les seconds. Mais qu'importe, pour notre
propos nous resterons résolument compatibles !
La syntaxe HTML est de la forme
<!--[if condition]>
code HTML réservé à IE
<![endif]-->
La syntaxe XSLT est de la forme
<xsl:comment><![CDATA[[if condition]>
pseudo-html
<![endif]]]</xsl:comment>
La condition peut-être enrichie par une ou plusieurs combinaisons d'opérateurs, comme décrit ci-après
Exemple : [if IE 7]
pour toutes les versions d'IE
[if IE 5.5000]
pour la version 5.5 uniquement
! : négation de la condition
Exemple : [if !IE 7]
pour toutes les versions autres que 7
lt : plus petit que (less than)
Exemple : [if lt IE 6]
pour toutes les versions inférieures à 6
lte : plus petit ou égal à (less than or equal)
Exemple : [if lte IE 5.5]
pour toutes les versions inférieures ou égales à 5.5
gt : plus grand que (greater than)
Exemple : [if gt IE 5]
pour toutes les versions supérieures à 5
gte : plus grand ou égal à (greater then or equal)
Exemple : [if gte IE 5.5]
pour toutes les versions supérieures ou égales à 5.5
( ) : permet de créer des conditions complexes
& : et logique
Exemple : [if (gt IE 5) & (lt IE 7)]
pour toutes les versions supérieures à 5 et inférieures à 7
| : ou logique
Exemple : [if (IE 6) | (IE 7)]
pour toutes les versions 6 et 7
true : vrai
Exemple : [if true]
retourne un test toujours positif
false : faux
Exemple : [if false]
retourne un test toujours négatif