Условные комментарии являются стандартом IE для 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
.
EDIT
Если вы хотите добавить еще одно условие, и держать визуализации кода на не-IE браузеров, вы можете использовать следующий метод обхода:
<!--[if gt IE 7]> <!-- -->
Here is some code for anything but IE 7 and below.
<!-- <![endif]-->
Примечание я должен был использовать открыть комментарий снова, чтобы IE не отображал -->
перед кодом. Другие браузеры по-прежнему считают это частью комментария.
Я действительно хочу, чтобы код отображался для IE 8 и IE 9, а не версии IE до этого. Я также хочу, чтобы код отображался в Chrome и Firefox. – Baxter
До тех пор, пока вы закрываете комментарии, я думаю, что это должно быть сделано для любого условия. – zebasz
Я протестировал его, не совсем работает. Я нашел обходное решение, поэтому я отредактирую и добавлю его. – zebasz