Как создать стили только для IE
Posted on Сентябрь 25, 2007
Filed Under ie7, ie5, ie5.5, сonditional сomments, ie, ie6, browsers, css |
Всем известно что браузеры IE некоректно работают с CSS. Мало того, у них у всех разные ошибки, ошибки которые сть в одной версии, отсутствуют в другой. Для создание стилей IE есть несколько методов: условные комментарии (Conditional Comments) и css хаки. Лично я отдаю предпочтение условным комментария.
Различные таблици стилей, для различных версий IE:
- только IE 7
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="IE-7-SPECIFIC.css" />
<![endif]-->- только IE 6
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="IE-6-SPECIFIC.css" />
<![endif]-->- только IE 5
<!--[if IE 5]>
<link rel="stylesheet" type="text/css" href="IE-5-SPECIFIC.css" />
<![endif]-->- только IE 5.5
<!--[if IE 5.5000]>
<link rel="stylesheet" type="text/css" href="IE-55-SPECIFIC.css" />
<![endif]-->- IE 6 и ниже
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="IE-6-OR-LOWER-SPECIFIC.css" />
<![endif]-->- ниже IE 6
<!--[if lt IE 6]>
<link rel="stylesheet" type="text/css" href="IE-6-LOWER-SPECIFIC.css" />
<![endif]-->
Почему следует использовать условные коментарии?
- При использовании хаков не вариант, что выйдет новая версия, которая будет понимать этот хак и в ней не будет исправлена ошибка, которая решалась с помощью хака. Вы наверно сталкивались с тем, что решали проблему для ИЕ6 и при этом скрывали эти стили от ИЕ7, а теперь представте что вы решаете проблему только для ИЕ7, выходит новая версия, она понимает этот хак, но эта ошибка в новой версии уже исправлена, в такой ситуации велика вероятность что в верстке чтото “поплывет” или “полезет”.)
- Ваша таблица стилей чиста и валидна, никаких zoom:1, filter, expression.
- Расширяемость. Выходит новая версия, и мы просто создаем для нее свой файл стилей, в котором определяем обходимые правила, вместо того чтобы лопатить все полотно стилей.
Вольный перевод оригинала.
Также есть статьи:
Comments
3 Responses to “Как создать стили только для IE”
Leave a Reply

Вы бы хоть не писали ерунды-то. Если не знаете что значит lte, то загляните на MSDN. http://msdn2.microsoft.com/en-us/library/ms537512.aspx
сейчас поправлю!
спасибо!
Поправьте “пелезет” в строке:
верстке чтото “поплывет” или “пелезет”.)