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

Хотите грязный хак, который позволит вам настраивать таргетинг HTML исключительно на версии браузера Microsoft Internet Explorer? Читаем дальше.

Старые версии Internet Explorer часто либо неумелы, либо непослушны. Или и то, и другое. Но они по-прежнему популярны, поэтому мы не хотим их игнорировать.

Условные комментарии, которые представляют собой не что иное, как простые HTML-комментарии, которые случайно просматривает IE (до версии 9), используются для загрузки фрагмента HTML в эти браузеры и только в эти браузеры. Другие хорошо управляемые, первоклассные браузеры просто увидят их как ничем не примечательные комментарии и пойдут дальше.

Лайфхаки с кодом стали широко используемым методом привязки дополнительного CSS к документу, чтобы замазать дыры в возможностях отображения этих браузеров.

Так, например, вы могли бы добавить что-то подобное внутри вашего head элемента:

<link href="everything.css" rel="stylesheet">
<!--[if IE]><link href="stupidie.css" rel="stylesheet"><![endif]-->

Все, что находится между

<!--[if IE]>

и

<![endif]-->

будет обнаружено Internet Explorer. Таким образом, это будет привязано к файлу CSS как обычно, и затем, только если браузером является Internet Explorer (на практике это будет Internet Explorer версии 9 и ниже), также будет применён дополнительный патч для файла CSS.

Вы также можете настроить таргетинг на определённые версии Internet Explorer:

<!--[if IE 6>…
<!--[if IE 7>…
<!--[if IE 8>…
<!--[if IE 9>…

Вы также можете настроить таргетинг на все версии, которые больше или меньше определённого числа:

<!--[if IE gt 6]>

для версий IE, превышающих 6

<!--[if IE gte 8]>

для версий IE, превышающих или равных 8

<!--[if IE lt 7]>

для версий IE меньше 7

<!--[if IE lte 7]>

для версий IE, меньших или равных 7

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

Условные комментарии действительно ужасны. В данный момент они необходимы, но ужасны. Их нужно избегать везде, где только можно.

Они предназначены не для того, чтобы, например, использовать совершенно разные таблицы стилей в разных браузерах. Это скорее для небольших резервных версий, чтобы вы могли использовать восхитительные варианты CSS 3 без компромиссов. И не думайте, что вам также нужно приспосабливаться ко всем версиям IE каменного века. Попробуйте и выясните, что для вас разумно поддерживать. Посетители вашего веб-сайта, действительно используют IE6? Вероятно, нет.

Страницы в тему:

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