
09 июля 2009 :Что происходит в режиме совместимостиИзвиняйте, что не добралась до статьи раньше, был день рождения и т. п., да и статья большая, третий день с перерывами писала. Сегодня я хочу вам рассказать о том что происходит в Quirks mode (режиме совместимости) и режиме соответствия стандартам (Standarts Mode).
Quirks Mode (режим совместимости) — это тоже режим работы веб-браузеров таких как Internet Explorer (IE), Firefox, Opera и Safari (chrome). Буквально, режим совместимости (также называется «режимом причуд») означает что относительно современные браузеры сознательно симулируют множество багов старых браузеров, особенно IE 4 и IE 5.
Режим совместимости включается при отсутствии doctype. Это значит что браузер ожидает в начале HTML документа увидеть содержит ли он объявление doctype такое какое требуется спецификацией HTML.
Назначение режима совместимости в том чтобы показать старые страницы так как задумал их автор. Старые страницы могли быть написаны с использованием особенностей старых браузеров. По дополнительной информации о Quirks Mode в основном, смотрите сайт QuirksMode.org.
Здесь я напишу список того что происходит в режиме совместимости. Всё-таки, этот режим, по-сути, сознательное нарушение правил CSS и HTML спецификаций.
Если у вас уже есть существующая страница которая вполне работает, но не имеет объявления doctype (требуемого спецификацией HTML) в начале документа, вы не можете просто взять и написать там объявление. Причина в том что декларация переключает браузер в так называемый «режим соответствия стандартам» (Standards Mode, или говорят просто стандартный режим), противоположный режиму совместимости. Это может означать что угодно. Страница может совершенно развалиться после объявления doctype, часто вёрстка меняется довольно непредсказуемо. Впрочем, не так непредсказуемо если вы знаете что может присходить в этом режиме.
Перед добавлением doctype, вам надо проверить HTML и CSS код на синтаксическую корректность используя валидаторы. Этого может быть недостаточно, так как страница может быть свёрстана полагаясь на вещи которые работают только в Quirks Mode. Поэтому, вам надо проверить страницу как минимум в IE 7 и Firefox 2 в Standards Mode, т. е. после добавления объявления doctype. Если страница отображается некорректно, нижеизложенный список может быть полезен для разрешения проблеммы.
При создании новой страницы, вам не нужно учитывать Quirks Mode и вообще желательно о нём не думать. Просто пишите согласно документации HTML и CSS; это включает использование объявление doctype, которое переключает современные браузеры в стандартный режим. Кроме того, указывайте объявление doctype в самом начале, т. к. некоторые браузеры (IE6) переходят в режим совместимости, если есть хоть что-то (даже комментарий) перед ним. (Это немного неудобно если вы используете XHTML, но в большинстве случаев, вам не нужно использовать XHTML для веб-страниц где-либо). Но если вы решите использовать некоторые особенности которые работают только в режиме совместимости, такие как height="100%" аттрибут у элемента table, вам следует ознакомиться со списком чтобы учесть что ещё у вас произойдёт. В режиме совместимости, браузеры придерживаются примерно следующего поведения, хотя не все браузеры проявляют все особенности из списка:
Этот список далеко не полон. Он рассказывает в основном про IE 7. У других браузеров режим совметсимости подражает работе старых версий IE в той же степени.
Проверка режима
Чтобы проверить в каком режиме браузер показывает страницу (Quirks vs. Standards),
- в Firefox, используйте команду command Инструменты/Информация о странице (View/Page Info); или если у вас есть расширение Web Developer, просто посмотрите иконку на строке инструментов (третья справа), должна быть зелёная галочка.
- Для IE и других, наберите
javascript:alert(document.compatMode) в адресной строке, и проверьте когда окошко выведет CSS1Compat (значит стандартный режим) или BackCompat (значит режим совместимости).
|
Комментарии: