Lorsque vous utilisez les commentaires conditionnels d'IE, il existe deux types différents dont vous devez être conscient. Premièrement, lorsque l'ensemble du contenu se trouve à l'intérieur d'un commentaire HTML (entre <!--
y -->
), mais l'IE le lira à cause de son état :
<!--[if IE]>
This is inside a HTML comment, so most browsers will ignore it, but IE will
interpret it.
<![endif]-->
L'autre type est pas un seul commentaire, mais du contenu que les navigateurs verront, entouré de deux commentaires qui feront qu'IE l'ignorera :
<!--[if !IE]> -->
This is not a HTML comment, so browsers should see it, but IE will ignore it.
<!-- <![endif]-->
(La mise en évidence du code de SO montre la différence - dans la première, tout est gris car il s'agit d'un commentaire, mais dans celle-ci, le texte est plus foncé car il ne s'agit pas d'un commentaire).
Le support Haml pour les commentaires conditionnels IE n'est utile que pour créer le premier type, car il fait partie de la syntaxe de création des commentaires de bloc. Si vous essayez de l'utiliser pour le second type (comme vous l'avez fait ici), vous obtenez quelque chose comme.. :
<!--[if !IE]>
This is inside a HTML comment, so other browsers will ignore it.
IE will also ignore it, as the conditional states !IE.
So everything ignores it.
<![endif]-->
ce qui constitue effectivement un commentaire inconditionnel.
Afin d'utiliser le [if !IE]
en Haml, vous devrez probablement le faire manuellement :
%p Some other content
<!--[if !IE]> -->
%p
Here's some content that shouldn't appear in IE.
<!-- <![endif]-->
Vous pouvez également utiliser le Haml surround
aide comme ceci :
%p Some other content
=surround '<!--[if !IE]> -->', '<!-- <![endif]-->' do
%p
Here's some content that shouldn't appear in IE.
(Si vous utilisez Rails, vous devrez utiliser html_safe
sur les cordes, c'est-à-dire surround '<!--[if !IE]> -->'.html_safe, '<!-- <![endif]-->'.html_safe do
).
Si vous l'utilisez souvent, il peut être utile de créer une méthode d'aide qui englobe cet appel à la fonction surround
.