Режимы Internet Explorer

Влад Мержевич

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

  • Internet Explorer встроен в операционную систему Windows и неопытные пользователи даже не подозревают о наличии альтернативы.
  • Корпоративные пользователи с ограниченным доступом не могут самостоятельно обновить версию или сменить браузер.
  • Обновление IE до новой версии происходит через систему Windows Update, которая часто отключается по требованиям безопасности или для снижения интернет-трафика.
  • Некоторые приложения, например, банковские, могут быть «заточены» для работы только под конкретную версию IE.
  • В силу инерции мышления, когда пользователю нравится та программа, с которой он привык работать.

Сама компания Майкрософт всячески поощряет переход на новые версии Internet Explorer и в 2010 году прекратила всяческую поддержку IE6 и IE7 (поддержка версий IE).

Что касается разработчиков сайтов, то для них такой большой набор версий это настоящая проблема. Каждая версия IE содержит свои уникальные ошибки, особенности отображения веб-страниц, а также не поддерживает какие-то свойства CSS. Одним из радикальных вариантов решения проблемы является полный отказ разработчика от поддержки определенных версий IE. Так, некоторые сервисы Google, сайт vkontakte.ru при попытке зайти на них через IE6 выдают предупреждение о том, что вы используете устаревший браузер. С другой стороны, некоторые разработчики интернет-магазинов бьются за каждый браузер, полагая, что даже если каким-то браузером пользуется 2%, то отказ от него приведет к потере 2% клиентов.

Из-за того, что каждая версия IE может отображать сайт по своему, разработчики IE8 оказались перед сложной дилеммой — эта версия настолько отличалась от предыдущей, что при просмотре через IE8 бо́льшая часть сайтов «рассыпалась». В итоге было принято решение добавить режим представления совместимости; для быстрого переключения сайтов в этот режим возле адресной строки добавлена специальная кнопка. В действительности при переключении в этот режим браузер начинал работать как версия 7.0. В IE9 пошли еще дальше и в нём уже можно переключаться на IE8 или IE7.

Рис. 1. Кнопка для переключения на IE7

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

Режим IE5.5
Несмотря на то, что браузером IE5.5 уже никто не пользуется, этот режим применяется во всех старших версиях IE при переключении в режим совместимости. Достаточно не указать доктайп и вы, словно на машине времени, вернётесь в прошлый век к отображению в этом браузере.

Режим IE6
Этот режим работает только в версии 6.0.

IE7
Стандартный режим браузера IE7 и режим при переключении на него в IE8 и IE9.

IE8
Стандартный режим браузера IE8 и режим при переключении на него в IE9.

IE9
Этот режим работает только в версии 9.0

Режим совместимости IE9
Браузер переключается в режим IE7, но сообщает, что в действительности это IE9.

Кроме использования переключения в браузере, задать режим можно через тег <meta>, отправив HTTP-заголовок X-UA-Compatible.

<meta http-equiv="X-UA-Compatible" content="IE=версия" />

Версия может принимать следующие значения:

  • 5 — вынужденное переключение в режим IE5.5, доктайп при этом игнорируется.
  • 7 — вынужденное переключение в режим IE7, доктайп при этом игнорируется.
  • 8 — вынужденное переключение в режим IE8, доктайп при этом игнорируется.
  • 9 — вынужденное переключение в режим IE9, доктайп при этом игнорируется.
  • EmulateIE7 — при наличии доктайпа переключается в режим IE7, в противном случае в режим совместимости.
  • EmulateIE8 — при наличии доктайпа переключается в режим IE8, в противном случае в режим совместимости.
  • Edge — устанавливает документ в наиболее новый доступный режим. Для версии 8.0 это режим IE8, для версии 9.0 это режим IE9.

К примеру, на сайте Яндекса применяется следующий код для эмуляции режима IE7.

<meta http-equiv="X-UA-Compatible"content="IE=EmulateIE7">

Не выкладывайте свой код напрямую в комментариях, он отображается некорректно. Воспользуйтесь сервисом cssdeck.com или jsfiddle.net, сохраните код и в комментариях дайте на него ссылку. Так и результат сразу увидят.