Использование условных комментариев в IE
Разные браузеры поддерживают разные наборы тегов/скриптов, классический пример - тег <MARQUEE> в Internet Explorer. Иногда можно использовать специфику конкретного браузера, чтобы заставить его отображать страницу в соотвествии со стандартами. В этой статье пойдет речь про условные комментарии появившиеся в IE5+.
Посмотрим, как можно отдать 2 разных куска кода разным браузерам:
<!--[if IE]>
Вы используете IE5 и выше!
<![endif]-->
<![if !IE]>
Ваш браузер не IE!
<![endif]>
Обнаружение IE 5.5 и IE 6
С помощью условных комментариев можно отдавать разный код разным версиям Internet Explorer:
<!--[if IE 5.5000]>
Ваш браузер IE 5.5!
<![endif]-->
<!--[if IE 6]>
Ваш браузер IE 6!
<![endif]-->
Таблица операторов для условных комментариев
Операторы позволяют использовать условия в условных комментариях, например оператор "!", запрещает выдачу кода указанной версии IE. Вот полный список возможных операторов:
Оператор | Описание |
---|---|
! | отрицание |
lt | меньше чем |
lte | меньше или равно |
gt | больше чем |
gte | больше или равно |
С помощью операторов мы можем задать более комплексное условие, например:
<!--[if gte IE 6]>
Ваш браузер IE 6, или IE 6.1 или IE 7!
<![endif]-->
Примеры
Давайте рассмотрим несколько примеров использования условных комментариев.
Пример первый. Отдадим IE стили в теге head:
<!--[if IE]>
<style type="text/css">
div.mycontainer {
width: 300px;
filter:alpha(opacity=100);
}
</style>
<![endif]-->
Пример второй. Если версия IE >= 5 выведем бегущий блок <MARQUEE>
<!--[if gte IE 5]>
<marquee scrollAmount="3" direction="up" width="200" height="150">
<ul>
<li>Новость 1</li>
<li>Новость 2</li>
<li>Новость 3</li>
<li>Новость 4</li>
</ul>
</marquee>
<![endif]-->
Теперь и вы можете настраивать поведение IE так, как вам захочется!
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
PeppeR
09.06.2008
Постоянная ссылка (Permalink)
Огромное спасибо! Обычно операторы так муторно описаны... Сидел, вспоминал как подключить отдельный css-файл для ослика, и Вы мне в этом помогли!
Rolan
23.08.2008
Постоянная ссылка (Permalink)
У вас в коде этой страницы имеются ошибки в написании условных операторов!
Исправьте, а то как-то не солидно :)
Виктор
04.09.2008
Постоянная ссылка (Permalink)
2 Rolan:
И где же ошибки? Я чего-то не заметил)))
Rolan
05.09.2008
Постоянная ссылка (Permalink)
Нажмите на ссылку на валидатор "W3C xhtml 1.0" (15-я строка).
Виктор
22.10.2008
Постоянная ссылка (Permalink)
2 Rolan:
А не кто и не спорит, что конструкция, не для ИЕ, не проходит валидацию, но безскриптовой альтернативы нет. А ошибок у Mike нет, он использует условные комментарии, так, как они прописаны в MSDN!
Наташа
19.05.2009
Постоянная ссылка (Permalink)
По статистике пользуются ИЕ 70%. Так что это пока самый популярный браузер. Никто, конечно не говорит, что самый лучший, но факт остается фактом.
Артём
28.06.2009
Постоянная ссылка (Permalink)
Опишите пожалуйста условный коментарий для Opera.
Metan
29.09.2009
Постоянная ссылка (Permalink)
Для нормальных браузеров нет условных комментариев. Они есть только в ИЕ, поскольку он работает очень криво.
Байкалов Герман
14.12.2009
Постоянная ссылка (Permalink)
Артём, Игорь для оперы эти комментарии и не должны работать. Во всех браузерах, кроме IE, эти комментарии не воспринимаются как код. Только IE их читает. Эти комментарии для валидности и кроссбраузерности.
Гость
29.07.2010
Постоянная ссылка (Permalink)
Спасибо, реально помогло в маркированном списке.
Otto Osborn
15.06.2022
Постоянная ссылка (Permalink)
Conditional comments are conditional statements in HTML source code that are evaluated by Microsoft Internet Explorer versions 5 through 9. They can be used to send and receive code to and from these Internet Explorer versions. Internet Explorer 10 and 11 do not accept conditional comments. Anyway, check out toca life world secrets 1:38 here for free. There are many free games to download and play.