Несмотря на неадекватную поддержку стандартов браузером Internet Explorer, его разработчики реализовали в нем одно довольно полезное свойство – поддержку условных комментариев. Условный комментарий это конструкция особого вида, которая воспринимается всем браузерами, кроме IE, как обычный комментарий. Но Internet Explorer не воспринимает это конструкция как комментарий. Таким образом, можно писать теги, которые будут восприниматься только IE. Преимуществом условных комментариев перед хаками(подробней о хаках читай в заметке Хаки – краткий путь к кроссбраузерности?) является то, что они проходят валидацию и скорее всего будут поддерживаться всеми последующим версиями нерадивого браузера.

Для того чтоб иметь возможность просмотреть страницу на одном компьютере в разных версиях браузера Internet Explorer необходимо установить IETester или Multiple IE о которых рассказывается в заметке «Джентльменский набор верстальщика«

Синтаксис условных комментариев:

<!--[if  "условие"]> HTML <![endif]-->

Условие это логическое выражение, которое формируется при помощи специальных управляющих переменных.

Переменная Пример Описание
IE [if IE] Условие выполняется во всех браузерах Internet Explorer
value [if IE 7] Условие выполняется только в Internet Explorer 7 версии(после IE стоит пробел!)
! [if !IE] Условие НЕ выполняется в Internet Explorer
lt [if lt IE 5.5] less-than условие выполняется в браузерах IE версии ниже 5.5
lte [if lte IE 6] less-than or equal условие выполняется в браузерах IE версии 6 и ниже
gt [if gt IE 5] greater-than условие выполняется в браузерах IE версии выше 5
gte [if gte IE 7] greater-than or equal условие выполняется в браузерах IE версии 7 и выше
& [if (gt IE 5)&(lt IE 7)] Оператор И(AND) условие выполняется в браузерах IE версии выше 5 но ниже 7
| [if (IE 6)|(IE 7)] Оператори ИЛИ(OR) условие выполняется в браузерах IE версии 6 или 7
( ) [if !(IE 7)] Скобки позволяют выделить подвыражения в сложном выражении.Условие не выполняется в браузере IE 7 версии

Примеры условных комментариев:

<!--[if  IE]>
       <h1>Этот текст выведется во всех браузерах </h1>
<![endif]-->
<!--[if  IE 6]>
       <h1>Этот текст выведется  только в IE6 </h1>
<![endif]-->
<!--[if gt IE 5]>
       <h1>
       Этот текст выведется браузерах версии высшее 5
      </h1>
<![endif]-->

Постфактум

Условные комментарии также могут быть записаны вот таким образом:

<![if "условие"]> HTML <![endif]>

Хоть эта конструкция и будет восприниматься условным комментарием для Internet Explorer, она не проходит валидацию и отображается другими браузерами, так как они расценивают это как синтаксически неправильный тег. Воспользовавшись этой конструкцией и логическим выражениями можно написать конструкцию, которая будет воспринята всеми браузерами кроме Internet Explorer.

<!--[if IE]><![if !IE]><![endif]-->
    <h1>Этот текст выведется любым браузером кроме IE</h1>
<!--[if IE]><![endif]><![endif]-->

Реализация условных комментариев

Tags: ,

4 Отзывов to “Условные комментарии для IE”

  1. Денис Радченко:

    Спасибо за условный комментарий «Для всех, кроме IE»
    Давно его искал, хотел делать server side и нашел ваш вариант!

  2. Эмуляция min-width, max-width под IE6 | ZODIOS.net:

    [...] отдельный файл стилей, который экранируется условным комментарием и в него добавляется expression, который эмулирует [...]

  3. DATA:URL – Картинки в документе без дополнительных запросов к серверу - ZODIOS.net:

    [...] Второй не достаток можно решить путем передачи браузеру Internet Explorer дополнительного файла стилей, который будет экранирован от других браузеров условным комментарием. [...]

  4. авто,автожурнал:

    Журнал avtosl. Логотипы автомобилей daihatsu.

Оставить отзыв


Последние записи