Совместимость условных HTML-комментариев? - PullRequest
2 голосов
/ 27 января 2011
<![if lt IE 7]> code to be executed by internet explorer versions prior to 7 <![endif]>

это здорово и, кажется, работает нормально. но единственная техническая спецификация, которую я могу найти, - в Microsoft, и в ней четко указано, что ее интерпретирует только Internet Explorer.

так что обычные комментарии выглядят так <!-- comment -->.

мой вопрос:

может ли какой-нибудь браузер в конечном итоге не интерпретировать <![if lt IE 7]> как комментарий, а как код и просто отображать его просто?

Я знаю, что это вопрос не может быть правильно сформирован, но я не знаю, как его перефразировать, чтобы быть более точным. пожалуйста, не стесняйтесь редактировать и комментировать, если неясно, чтобы я мог изменить.

Ответы [ 3 ]

3 голосов
/ 27 января 2011

Это не

<![if lt IE 7]>

это

<!--[if lt IE 7]>

Так что нет, другие браузеры, которые правильно анализируют HTML-комментарии, всегда будут видеть <!--, открывающий блок комментариев.

1 голос
/ 27 января 2011

читая немного глубже в Microsoft:

При сравнении этого типа комментария с базовым HTML-комментарием обратите внимание, что сразу после открытия "" из "нет дефисов (" - ")блок комментариев;поэтому разделители комментариев рассматриваются как нераспознанный HTML.Поскольку браузер не распознает условный комментарий нижнего уровня, он ничего с ним не делает.

и

Условный комментарий скрытого уровня содержит дефисы ("-") в открывающем и закрывающем теге, аналогичном базовому HTML-комментарию.Условие появляется в открывающей части тега, и [endif] помещается перед закрывающей частью тега.Содержимое размещается внутри тегов комментариев.

Поскольку первые четыре символа и последние три символа комментария идентичны базовому элементу HTML Comment, браузеры нижнего уровня игнорируют содержимое HTML внутри блока комментариев.Поскольку содержимое эффективно скрыто от браузеров, которые не поддерживают условные комментарии, этот тип условного комментария называется скрытым на нижнем уровне.

Если результат условного выражения равен true, содержимое внутри блока комментария анализируется иотображается в Internet Explorer 5 и более поздних версиях.Такое поведение делает условный комментарий скрытого нижнего уровня особенно полезным для содержимого, специально разработанного для Internet Explorer.

1 голос
/ 27 января 2011

Условным комментариям фактически предшествует <!-- , что делает их HTML-комментариями ...

<!--[if IE 7]>
Special instructions for IE 7 here
<![endif]-->

Так что, если браузер поддерживает комментарии, он не будет отображатьсяИ я бы предположил, что любой браузер, созданный примерно в 2000 году, поддерживает комментарии HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...