Internet Explorer 8 - режимы совместимости
Материал из 1GbWiki.
Содержание |
Cтандарты
Странички сайтов в интернете, - это текстовые файлы в которых содержание страницы описано специальным языком разметки. Язык разметки регламентируют специальные документы, называемые стандартами w3c - The World Wide Web Consortium (далее стандарты). К сожалению, эти стандарты не идеальны: они сложны и запутаны, существует множество их версий и трактовок, наиболее актуальные их части даже сейчас не утверждены и продолжают находится в состоянии разработки (то есть, например, могут изменится в любой момент).
Обозреватели интернета (далее браузеры) развиваются паралельно развитию стандартов иногда обгоняя их, иногда наоборот. Если вы возьмёте браузер десятилетней давности, то он не сможет правильно отобразить большинство современных сайтов так как в то время стандарты и уровень их поддержки браузерами были на другом уровне развития, нежели сейчас.
К сожалению, очень часто развитие стандартов и их понимание браузерами приводит к потере обратной совместимости, то есть одинаковые страницы на новом и старом браузере могут выглядить по разному. В браузере Internet Explorer применяется несколько методов, которые позволяют отобразить старые страницы в новом браузере правильно.
Internet Explorer
IE7 (выпущен в 2006 году) умеет автоматически по содержанию страницы определять к какому уровню стандартов она относится: на основании элемента DOCTYPE языка разметки он может отнести страницу к старым стандартам, характерным для IE5 (1999) или к новым, характерным для IE6 (2001) и показывать сайты используя один из этих двух режимов.
Относительно предыдущей версии IE7 вносит поддержку нескольких дополнительных элементов но не меняет имеющиеся, что бы сохранить совместимость с ним. Таким образом удаётся добиться обратной совместимости между браузерами: новые страницы созданные для IE7 могут неверно показываться старым браузером IE6 но зато все старые страницы созданные с расчётом на IE6 корректно отображаются в IE7.
IE8 (2009) поддерживает все современные стандарты, в том числе для него заявлена полная поддержка CSS 2.1. IE8 включает в себя поддержку режимов, которые умел IE7. По умолчанию используется новый режим. К сожалению, тут произошла ситуация, когда старые страницы в новом режиме могут отображаться неверно, так как старые версии IE понимали CSS 2.1 иначе - обратная совместимость нарушена.
IE8 может отобразить страницу в одном из старых случаев в ряде случаев:
- По DOCTYPE может быть установлен Quirsk-режим (аналог IE5)
- По значению флага X-UA-Compatible, флаг можно передать
- В HTTP-ответе сервера, пример: X-UA-Compatible: IE=EmulateIE7
- В элементе <meta> заголовка страницы, например: <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
- По наличии сайта в списке совместимости, получаемом с Microsoft
Таблица возможных значений
X-UA-Compatible для Internet Explorer 8 можно установить в следующие значения:
- IE=5, режим совместимости с IE5 или Quirsk-режим
- IE=7, режим стандартов IE7, без возможности автоматической установки совместимости с IE5
- IE=EmulateIE7, режим IE7 в котором, на основании содержимого страницы, может произойти автоматически выбор межу IE=7 и IE=5 (поведение IE7 по умолчанию)
- IE=8, режим IE8 (актуальные стандарты) - применяется по умолчанию
- IE=Edge, режим совместимости с самыми современными стандартами: для IE8 он равен режиму IE=8, для IE9 будет равен режиму IE=9 и так далее