О том как легально, валидно и без применения JavaScript писать код для IE only.
Условные комментарии — одна из документированных фич в верстке, которая позволяет узнавать в пользовательском браузере Internet Explorer и даже различать его версии. Необходимость в этом часто возникает при подключении .css или .js-файлов, которые должны быть видны только в ИЕ и нигде более.
Поддержка условных комментариев начинается с пятой версии IE. Допускается их использование как в HEAD, так и в BODY, со следующим синтаксисом:
<style type="text/css">.ieonly {}</style><![endif]-->
От простого многострочного, условный комментарий по написанию отличается двумя блоками:
- [if условие] — задает условие. Если оно принимает значание true, то код внутри комментария интерпритируется браузером. Если false — игнорируется.
- ![endif] — закрывает условный комментарий.
Операторы в условных выражениях
- IE [if IE] — проверка, является ли браузером клиента Internet Explorer.
- версия [if IE 6] — проверка типа и версии браузера.
- ! [if !IE] — оператор НЕ. Читается так: "если браузер НЕ IE".
- lt [if lt IE 6] — оператор "меньше". Читается так: "если версия браузера меньше шестой".
- lte [if lte IE 6] — оператор "меньше либо равно".
- gt [if gt IE 6] — оператор "больше".
- gte [if gte IE 6] — оператор "больше либо равно".
- () [if !(IE 6)] — условия можно группировать, заключая в скобки.
- & [if (gt IE 5)&(lt IE 7)] — логический оператор "И". Пример читается так: "если IE выше версии 5 И ниже версии 7".
- | [if (IE 5)|(IE 7)] — логический оператор "ИЛИ". Пример читается так: "если IE пятой версии ИЛИ седьмой".
<p>Вы используете Internet Explorer.</p><![endif]-->
<!--[if IE 7]>
<p>Добро пожаловать в Internet Explorer 7!</p><![endif]-->
<!--[if !(IE 7)]>
<p>Вы не используете седьмую версию ИЕ.</p><![endif]-->
<!--[if gte IE 7]>
<p>Вы используете IE 7 или выше.</p><![endif]-->
<!--[if (IE 5)]>
<p>Вы используете IE 5.</p><![endif]-->
<!--[if (gte IE 5.5)&(lt IE 7)]>
<p>Вы используете IE 5.5 или IE 6.</p><![endif]-->
<!--[if lt IE 5.5]>
<p>Пожалуйста, обновите вашу версию Internet Explorer.</p><![endif]-->
