CSS, UTF и Интернет эксплорер
23 Dec, 2006Недавно я и некоторые из моих знакомых напоролись на интересный неочевидный глюк связанный с употреблением русских комментариев в CSS. Суть глюка и пример ниже. Сразу резюме: лучше не используйте комментарии с кириллицей в CSS.
Ответа в инете не нашел
Наверняка многие на него напарывались - но внятного ответа от гугла мне получить не удалось - потому я решил для экономии времени читателей озвучить этот гадкий и противный глюк. По незнанию такого глюка отладка может быть длительной. Глюк проявляется только в версиях интернет эксплорера 5.0-6.0Типичная ситуация для бага
Вы верстаете сайт. Кодировка ваших CSS файлов по умолчанию выставлена windows-1251. После чего верстка попадает в реализацию, где она прикручивается к движку(в движке HTML отдается как UTF-8). Однако оказывается, что в ИЕ6 и ниже, сайт сильно расползается и часть CSS не работает. Причина - русские комментарии в CSS.Пример
Для примера я создал CSS файл с русскими комментариями в кодировке windows-1251:- /*Русский комментарий*/
- #content{
- color:#fff;
- background:#000;
- }
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
- <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
Решение
Есть несколько путей:- Удалить русские комментарии из CSS
- Поменять кодировку CSS файла на UTF-8
Суть бага в том, что при наличии русского комментария(UTF кодировка страницы переносится и на CSS), IE сьедает символ закрытия комментария, в результате весь CSS после русских букв оказывается так же закомментированным. В IE7 этот "баг" не проявляется. Примеры смотреть в IE 6 и ниже.
37 комментариев к “CSS, UTF и Интернет эксплорер”