Conditional Comments, или условные комментарии в IE

В статье про закруглённые углы мы слегка затронули тему условных комментариев для написания костылей к IE.
Сейчас мы постараемся подробно разобрать, что же такое условные комментарии и как с их помощью можно сильно упростить себе жизнь.

Использование

Код условного комментария в IE задаётся следующим способом:
<!--[if IE]> ваш код <![endif]-->
Другие браузеры видят в нём простой комментарий, и не обрабатывают его.

А теперь о способах проверки IE:

1. Это и в самом деле IE?

<!--[if IE]>Этот текст будет виден в любой версии IE<![endif]-->

2. Отдельная версия

<!--[if IE 6]>Этот текст будет виден только в IE 6<![endif]-->
<!--[if IE 5]>А этот - только в IE 5 (неужели им кто-то ещё пользуется?)<![endif]-->
<!--[if IE 7]>Этот - только в IE 7<![endif]-->

3. Больше – меньше

gt - больше, lt – меньше чем указанная версия.
<!--[if lt IE 8]>Пожалуйста, обновите свой браузер до 8 версии<![endif]--> <!-- всё, что ниже IE 8 -->
<!--[if gt IE 6]>Этот текст увидят только обладатели 7 и 8 версии IE<![endif]--> 
gte - больше или равно, lte – меньше или равно указанной версии.
<!--[if lte IE 7]>Этот пример будет виден в IE 7 версии или более ранней<![endif]--> 
<!--[if gte IE 6]>Этот пример будет виден в IE 6 версии или более поздней<![endif]--> 

4. И, Или, Не

& - выбрать диапазон
<!--[if (gte IE 5) & (lte IE 7)]>Пример будет виден только в IE 5,6,7<![endif]-->
| - задать несколько соответствий
<!--[if (IE 5) | (IE 7)]>Пример будет виден только в IE 5 и 7<![endif]-->
! - выбрать все браузеры, кроме определённого
<!--[if !(IE 6)]>IE 6 - фуфло<![endif]--> <!-- обладатели IE 6 этого не увидят. а жаль. -->

5. Простой способ обнаружить IE 8 под Windows 7

Лично я не вижу в этом практической ценности, но вдруг кому-то пригодится…
<!--[if WindowsEdition]>Этот код увидят только те, кто использует IE 8 под Windows 7<![endif]--> 
А теперь немного практики:
Следующий текст будет на голубом фоне в IE 5, на красном – в IE 6 и 7, на зелёном – в IE 8 и на желтом – во всех остальных браузерах.

Конечно, вы можете изменять не только цвет фона, но и любые другие атрибуты.

HTML

<style>
.block {
	background-color:#F2E973;
}
</style>
<!--[if IE 5]>
	<style>
	.block {
		background-color:#70D0F5;
	}
	</style>
<![endif]-->
<!--[if (IE 6) | (IE 7)]>
	<style>
	.block {
		background-color:#F47171;
	}
	</style>
<![endif]-->
<!--[if IE 8]>
	<style>
	.block {
		background-color:#AFEE6A;
	}
	</style>
<![endif]-->
<div class="block"></div>



Комментарии

19 декабря 2010, 15:14 (Ответить)
Искал информацию по этому вопросу! Спасибо!

Добавить комментарий