Условные комментарии (Conditional Comments)
31 января 2008, 12:40
Автор: Александр Бурцев [bur]
О том как легально, валидно и без применения JavaScript писать код для IE only.
Условные комментарии - одна из документированных фич в верстке, которая позволяет узнавать в пользовательском браузере Internet Explorer и даже различать его версии. Необходимость в этом часто возникает при подключении .css или .js-файлов, которые должны быть видны только в ИЕ и нигде более.
Поддержка условных комментариев начинается с пятой версии IE. Допускается их использование как в HEAD, так и в BODY, со следующим синтаксисом:
От простого многострочного, условный комментарий по написанию отличается двумя блоками:
[if условие] - задает условие. Если оно принимает значание true, то код внутри комментария интерпритируется браузером. Если false - игнорируется.
![endif] - закрывает условный комментарий.
• версия [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 пятой версии ИЛИ седьмой".
// Все права на статью HTML::Условные комментарии (Conditional Comments) принадлежат сайту 2007.fastcoder.ru
Условные комментарии - одна из документированных фич в верстке, которая позволяет узнавать в пользовательском браузере Internet Explorer и даже различать его версии. Необходимость в этом часто возникает при подключении .css или .js-файлов, которые должны быть видны только в ИЕ и нигде более.
Поддержка условных комментариев начинается с пятой версии IE. Допускается их использование как в HEAD, так и в BODY, со следующим синтаксисом:
<!--[if IE]>
<style type="text/css">.ieonly {}</style><![endif]-->
<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 пятой версии ИЛИ седьмой".
<!--[if 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]-->
<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]-->
// Все права на статью HTML::Условные комментарии (Conditional Comments) принадлежат сайту 2007.fastcoder.ru