webew
Войти » Регистрация
 
HTML

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

31 января 2008, 9:40
О том как легально, валидно и без применения 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]-->


// Все права на статью HTML::Условные комментарии (Conditional Comments) принадлежат сайту 2007.fastcoder.ru
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
NO USERPIC

rgbeast

А есть ли способ написать код, который IE будет игнорировать, а остальные браузеры отображать?
31.01.2008, 09:52
Ответить

bur

Например так:
<![if !IE]><p>Вы не используете Internet Explorer.</p><![endif]>

!!Однако!! Валидатор этот код не пропустит, т.к. мы убрали элементы, совмещающие этот код с многострочным комментарием.
31.01.2008, 10:02
Ответить
NO USERPIC

Adil

Здравствуйте. Подскажите пожалуйста в чем может быть проблема. Сайт работал нормально на всех браузерах. Теперь не работает в Експлорере, выводит только флеш меню, по пунктам меню не переходит, только показывает что загружает но не более, пункты в админ панели при наведении мыши внизу слева выводит javascript: void(0); Помогите кто сталкивался. Заранее благодарен!
Adil
19.05.2012, 18:54
Ответить

1234ru

Очевидно, код сайта претерпел какие-то изменения.
Возможно, в javascript-файлы закралась ошибка. Так что для начала откройте отладчик javascript (например, консоль в Firebug) и проверьте.
То, что не убивает нас, делает нас инвалидами.
21.05.2012, 00:49
Ответить
NO USERPIC

Adil

1234ru. Проверил как вы советовали...но особо ничем не помогло...в файле style.css все зачеркнуто...где то косяк но не могу найти где...может кто подскажет в чем проблема?
Adil
24.05.2012, 07:08
Ответить

1234ru

А причем здесь вообще style.css?
Вы же javascript отлаживаете, а не стили.

Попробуйте загрузить сайт с отключенным javascript - будет ли нормально показываться?
То, что не убивает нас, делает нас инвалидами.
25.05.2012, 09:59
Ответить
Добавить комментарий
Отображение комментариев: Древовидное | Плоское
© 2008—2017 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100

Реклама: