понедельник, 10 декабря 2012 г.

inline-комментарии css и IE

Столкнулся совершенно случайно с игнорированием некоторых CSS-правил шестым эксплорером. Немного поковырявшись, выяснилось, что он в определенных случаях игнорирует те правила, которые содержат строчные комментарии (между /* и */).


Вот пример:


.test {
    border-color: /* старое значение */ green;
}

Блок с классом test будет иметь рамку зеленого цвета во всех браузерах. А в ИЕ (как минимум в 6 и 7 версиях) значение будет взято по умолчанию (т.е. из свойства color), т.е. данное правило игнорируется. Не знаю, чем объяснить данное поведение, причем достаточно комментарий придвинуть поближе к двоеточию или значению цвета — и все работает. Быстренько накидал тестовую страничку с разнообразными расположениями комментариев и отправил на browsershots. Дополнительно выяснилось, что адекватные браузеры пропускают только случаи, когда комментарий находится внутри имени свойства или его значения (что в принципе логично). Если говорить про ИЕ, то он по какой-то неведомой причине нормально обрабатывает варианты типа

border-color: gre/*123*/en;

В общем, получается эдакий странноватый ИЕ6-7 хак :) В Гугле ничего по этому поводу не нашел, или все-таки баян древний, как сам ИЕ6?

Комментариев нет:

Отправить комментарий