Это то, что называется условные комментарии , как вы уже догадались. Они вообще не являются частью какого-либо стандарта.
Это забавная вещь, которую делает IE - он фактически анализирует текст того, что должно быть неактивными данными! Но это должно работать.
Способ использования этого прост: если вы используете IE <7, то вы <code>blah стилизуете элементы для .ie6 blah
. Более конкретный пример: допустим, вы хотите, чтобы ваши гиперссылки были красными, когда пользователь находится в IE8, и зелеными в противном случае. Вот немного CSS:
a {
color: green;
}
.ie8 a {
color: red;
}
Поскольку «a
, который является потомком элемента, имеющего класс ie8
», более специфичен, чем «любой a
», последний применяется, и в IE8 ссылки будут красными. Эта логика применима только к IE8, потому что это единственный случай, когда условный комментарий для IE8 интерпретируется как часть HTML (а не закомментировано).
Единственный другой бит, который может сбить с толку, - это последняя строка, где у вас есть -->
внутри блока комментариев: это означает, что браузер, полностью игнорирующий условные комментарии, все равно увидит HTML в последний блок (вместе с IE> 9 и браузерами, не поддерживающими IE, но все еще интерпретирующими условные комментарии).