При использовании условных комментариев IE существуют два разных типа, о которых вам нужно знать. Во-первых, когда весь контент находится внутри HTML комментария (между <!--
и -->
), но IE прочтет из условия:
<!--[if IE]>
This is inside a HTML comment, so most browsers will ignore it, but IE will
interpret it.
<![endif]-->
Другой тип не один комментарий, но некоторые содержание, браузеры будут видеть, окруженный двумя комментариями, которые сделают IE игнорировать:
<!--[if !IE]> -->
This is not a HTML comment, so browsers should see it, but IE will ignore it.
<!-- <![endif]-->
(подсветка кода SO показывает разницу - в верхнем один все это серый, как это все комментарии, но в этот текст темнее так как это не комментарий).
The Haml support for IE conditional comments полезен только для создания первого рода, поскольку он является частью синтаксиса для создания комментариев блока. Если вы пытаетесь использовать его для второго рода (как вы здесь), вы получите что-то вроде:
<!--[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
.
Что такое реально генерируемой HTML? –
– BronzeGate