При использовании условных комментариев в IE необходимо учитывать два разных типа.Во-первых, когда весь контент находится внутри HTML-комментария (от <!--
до -->
), но IE будет читать его из-за условия:
<!--[if IE]>
This is inside a HTML comment, so most browsers will ignore it, but IE will
interpret it.
<![endif]-->
Другой тип - not один комментарий, но некоторый контент, который увидят браузеры, в окружении двух комментариев, которые заставят IE его игнорировать:
<!--[if !IE]> -->
This is not a HTML comment, so browsers should see it, but IE will ignore it.
<!-- <![endif]-->
(Подсветка кода SO показывает разницу - в верхнем все серое, какэто все комментарии, но в этом текст темнее, поскольку это не комментарий).
Поддержка Haml для условных комментариев IE полезна только для создания первого вида, так какчасть синтаксиса для создания блочных комментариев.Если вы попытаетесь использовать его для второго типа (как у вас здесь), вы получите что-то вроде:
<!--[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]-->
, что фактически является безусловным комментарием.
Для использования [if !IE]
введите Haml, вам, вероятно, придется сделать это вручную:
%p Some other content
<!--[if !IE]> -->
%p
Here's some content that shouldn't appear in IE.
<!-- <![endif]-->
Вы также можете использовать Haml surround
helper , например:
%p Some other content
=surround '<!--[if !IE]> -->', '<!-- <![endif]-->' do
%p
Here's some content that shouldn't appear in IE.
(Если вы используете Rails, вам нужно будет использовать html_safe
в строках, то есть surround '<!--[if !IE]> -->'.html_safe, '<!-- <![endif]-->'.html_safe do
).
Если вы используете это много, это может стоитьсоздание вспомогательного метода, который переносит этот вызов на surround
.