Профессиональные курсы: Практика верстки HTML JavaScript для начинающих Программирование на PHP Онлайн-курсы по веб-технологиям

Условные комментарии (Conditional Comments)

О том как легально, валидно и без применения JavaScript писать код для IE only.

Условные комментарии — одна из документированных фич в верстке, которая позволяет узнавать в пользовательском браузере Internet Explorer и даже различать его версии. Необходимость в этом часто возникает при подключении .css или .js-файлов, которые должны быть видны только в ИЕ и нигде более.

Поддержка условных комментариев начинается с пятой версии IE. Допускается их использование как в HEAD, так и в BODY, со следующим синтаксисом:

<!--[if IE]>
<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]-->

Александр Бурцев 31 августа 2008

© Все права на данную статью принадлежат порталу fastcoder.org. Перепечатка в интернет-изданиях разрешается только с указанием автора и прямой ссылки на оригинальную статью. Перепечатка в печатных изданиях допускается только с разрешения редакции.

Комментарии

 
Rambler's Top100 Flede HTML valid CSS valid