Ответ 1
Условные комментарии - это правило, зависящее от IE, и они не являются частью какого-либо стандарта. Если вы проверяете структуру условного комментария:
<!--[if gt IE 7]>
Here is some code.
<![endif]-->
Как следует из названия, это всего лишь большой комментарий <!-- comment -->
. IE проверяет комментарии для таких условий, которые, опять же, не соответствуют стандартам HTML.
Чтобы создать код, который не отображается в IE, но делает его в других браузерах, вы используете следующее условное выражение:
<!--[if !IE]> -->
This will be rendered by anything but IE.
<!-- <![endif]-->
Посмотрите, как условия заключены в закрытые комментарии? Вот почему это отображается в обычных браузерах, тогда как IE проверяет условное выражение и решает пропустить все до endif
.
ИЗМЕНИТЬ
Если вы хотите добавить другое условие и продолжать визуализировать код в браузерах, отличных от IE, вы можете использовать следующее обходное решение:
<!--[if gt IE 7]> <!-- -->
Here is some code for anything but IE 7 and below.
<!-- <![endif]-->
Примечание. Я должен был снова открыть комментарий, чтобы IE не отображал -->
перед кодом. Другие браузеры по-прежнему будут считать это частью комментария.