Условные комментарии

Влад Мержевич

Любой текст в коде HTML можно закомментировать и при этом он никак не будет отображаться на веб-странице. Для этого его следует поместить между элементами <!-- и -->. Браузер Internet Explorer кроме того поддерживает специальный синтаксис, в задачу которого входит интерпретировать код, если перед нами Internet Explorer. Остальные браузеры при этом видят обычный комментарий и не отображают его.

<!--[if IE]>
Код для браузера Internet Explorer
<![endif]-->

Внутри квадратных скобок допустимо использовать следующие ключевые слова:

  • IE — любая версия браузера Internet Explorer;
  • IE 6 — Internet Explorer 6;
  • IE 7 — Internet Explorer 7;
  • IE 8 — Internet Explorer 8;
  • IE 9 — Internet Explorer 9;
  • lt — номер версии браузера меньше указанной;
  • gt — номер версии больше указанной;
  • lte — номер версии меньше или равен указанной;
  • gte — номер версии браузера больше или равен указанной.

В примере 1 приведен стиль для всех браузеров Internet Explorer до версии 7.0 включительно.

Пример 1. Стиль для браузера Internet Explorer

XHTML 1.0CSS 2.1IE 6IE 7IE 8+CrOpSaFx

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Хаки</title>
  <style type="text/css">
    DIV { 
     color: orange; /* Для всех браузеров, кроме IE */
    }
  </style>
  <!--[if lte IE 7]>
   <style type="text/css">
    DIV { 
     color: green; /* Для браузера Internet Explorer */
    }
  </style>
  <![endif]-->
</head>
 <body>
  <div>Lorem ipsum dolor sit amet...</div>
</body>
</html>

В CSS применяется свой синтаксис комментариев вида /* */, поэтому условными комментариями приходится обособлять отдельный контейнер <style>. В данном примере в браузере IE 7 цвет текста будет зеленым, а в остальных браузерах оранжевым.

Не выкладывайте свой код напрямую в комментариях, он отображается некорректно. Воспользуйтесь сервисом cssdeck.com или jsfiddle.net, сохраните код и в комментариях дайте на него ссылку. Так и результат сразу увидят.