stringtranslate.com

Режим причуд

В вычислительной сфере режим совместимости — это подход, используемый веб-браузерами для обеспечения обратной совместимости с веб-страницами , разработанными для старых веб-браузеров, вместо строгого соблюдения веб-стандартов в стандартном режиме . С тех пор это поведение было систематизировано, поэтому то, что раньше было стандартным режимом , теперь называется просто режимом без особенностей .

Обзор

Структура и внешний вид веб-страницы описываются комбинацией двух стандартизированных языков:

Однако большинство старых веб-браузеров либо не полностью реализовали спецификации этих языков, либо были разработаны до окончательной доработки спецификаций ( Microsoft Internet Explorer версии 5.0 для платформы Macintosh , выпущенный в 2000 году, был первым крупным веб-браузером с полной поддержкой например, для CSS уровня 1). [1] В результате многие старые веб-страницы были созданы с учетом неполных или неправильных реализаций старых браузеров и будут отображаться так, как задумано, только при обработке такими браузерами.

Поддержка стандартизированных HTML и CSS в основных веб-браузерах значительно возросла, но большой объем устаревших документов, основанных на особенностях старых браузеров, представляет собой препятствие для разработчиков браузеров, которые хотят улучшить поддержку стандартизированных HTML и CSS, а также хотите сохранить обратную совместимость со старыми, нестандартизированными страницами. Кроме того, многие новые веб-страницы по-прежнему создаются старым способом, поскольку обходные пути совместимости, предложенные разработчиками браузеров, означают, что понимание стандартизированных методов не является строго необходимым.

Чтобы обеспечить совместимость с максимально возможным количеством веб-страниц, современные веб-браузеры обычно разрабатываются с несколькими режимами рендеринга: в «режиме без особенностей» страницы отображаются в соответствии со спецификациями HTML и CSS, а в «режиме с особенностями» предпринимаются попытки эмулировать поведение старых браузеров. Некоторые браузеры (например, основанные на механизме рендеринга Gecko от Mozilla или Internet Explorer 8 в строгом режиме ) также используют «почти стандартный» режим, который пытается найти компромисс между ними, реализуя одну особенность для размера ячеек таблицы, в то же время соответствуя в остальном. спецификациям. [2]

Различия режимов и примеры

Одним из заметных различий между режимами с причудами и режимами без особенностей является обработка ошибки блочной модели CSS Internet Explorer . До версии 6 Internet Explorer использовал алгоритм определения ширины поля элемента, который противоречил алгоритму, подробно описанному в спецификации CSS, и из-за популярности Internet Explorer было создано множество страниц, основанных на этом нестандартном алгоритме. Начиная с версии 6, Internet Explorer использует алгоритм спецификации CSS при рендеринге в режиме совместимости и использует предыдущий нестандартный алгоритм при рендеринге в режиме совместимости. [ нужна цитата ]

Еще одним заметным отличием является вертикальное выравнивание определенных типов встроенного контента; многие старые браузеры выравнивали изображения по нижней границе содержащего их блока, хотя спецификация CSS требует, чтобы они были выровнены по базовой линии текста внутри блока. В режиме без особенностей браузеры на базе Gecko будут выравниваться по базовой линии, а в режиме с особенностями — по нижнему краю. [3]

Кроме того, многие старые браузеры не реализовали наследование стилей шрифтов внутри таблиц; в результате стили шрифтов пришлось указывать один раз для документа в целом и еще раз для таблицы, хотя спецификация CSS требует, чтобы стиль шрифта был унаследован в таблице. Если размеры шрифта указаны в относительных единицах, совместимый со стандартами браузер унаследует базовый размер шрифта, а затем применит относительный размер шрифта в таблице: например, страница, на которой объявлен базовый размер шрифта 80%, и шрифт таблицы. Размер 80 % (чтобы обеспечить размер 80 % в браузерах, которые не наследуют должным образом размеры шрифтов) в браузере, совместимом со стандартами, будет отображать таблицы с размером шрифта 64 % (80 % от 80 %). В результате браузеры обычно не наследуют размеры шрифтов в таблицах в режиме совместимости. [4]

Ограниченный режим причуд

В этих браузерах реализован третий режим совместимости, известный как «режим с ограниченными возможностями» (ранее «почти стандартный режим» или «строгий режим»), который поддерживает «традиционный» вертикальный размер ячеек таблицы в соответствии со спецификацией CSS2 : Safari , Opera 7.5 (и более поздних версий), все браузеры на базе Gecko , начиная с 1.0.1 (например, Firefox ) и Internet Explorer 8 . [2]

Рендеринг в режиме «Почти стандарт» соответствует режиму «Стандарт» во всех деталях, кроме одной. Расположение изображений внутри ячеек таблицы обрабатывается так же, как работает режим «причуд», который вполне соответствует устаревшим браузерам, таким как Internet Explorer 7 (и более ранним версиям). Это означает, что макеты с нарезанными изображениями в таблицах с меньшей вероятностью развалятся в браузерах в режиме «причуд» или «почти стандарт», а не в режиме «стандарты». [5]

Запуск различных режимов рендеринга

Чаще всего браузеры определяют, какой режим рендеринга использовать, на основе наличия объявления типа документа на странице; если присутствует полный DOCTYPE, браузер будет использовать режим совместимости, а если он отсутствует, браузер будет использовать режим совместимости. Например, веб-страница, начинающаяся со следующего DOCTYPE, активирует режим без особенностей:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Следующий DOCTYPE синтаксически недействителен и содержит ключевое слово общедоступного идентификатора «PUBLIC», но не содержит общедоступного идентификатора (указывающего имя используемой версии HTML) и не содержит URL-адреса системного идентификатора определения типа документа HTML . Это активирует режим причуд:

<!DOCTYPE html ПУБЛИЧНЫЙ>

Кроме того, веб-страница, которая вообще не содержит DOCTYPE, будет отображаться в режиме совместимости.

Заметным исключением из этого правила является браузер Microsoft Internet Explorer 6 , который отображает страницу в режиме совместимости , если DOCTYPE предшествует пролог XML , независимо от того, указан ли полный DOCTYPE. Таким образом, страница XHTML , начинающаяся со следующего кода, будет отображаться в режиме совместимости с помощью IE 6:

<?xml version="1.0"coding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " http://www.w3.org/TR/ xhtml1/DTD/xhtml1-strict.dtd">

Вышеупомянутое полезно в некоторой степени, поскольку его можно использовать для запуска режима совместимости только в IE 6.

Режим Quirks в любой версии IE также будет запущен, если что-либо предшествует DOCTYPE. Например, если гипертекстовый документ содержит комментарий, пробел или любой тег перед объявлением DOCTYPE, IE будет использовать режим совместимости:

<!-- Этот комментарий переведет IE 6, 7, 8 и 9 в режим совместимости --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3 .org/TR/html4/strict.dtd">

Проблема с объявлением XML была исправлена ​​в версии 7 Internet Explorer, в которой пролог XML просто игнорируется. [6] Однако для максимальной совместимости с существующими и старыми веб-браузерами Консорциум World Wide Web , который поддерживает спецификацию XHTML, предлагает авторам документов XHTML рассмотреть возможность исключения объявления XML. [7]

Сравнение типов документов

Анри Сивонен составил список различных типов документов и того, как они обрабатываются в наиболее распространенных браузерах, показывая, отображаются ли страницы в режиме «Quirks », «Стандарты » или «Почти стандарт». Критерием, используемым для «Почти стандартного режима», является рендеринг нестандартной высоты ячейки таблицы. Эта таблица применима к контенту, обслуживаемому с типом контента text/html. Содержимое, обслуживаемое с помощью приложения Content-Type application/xhtml+xml, отображается в стандартном режиме в Chrome, Firefox, Internet Explorer 9, Safari и Opera. Internet Explorer 6, 7 и 8 не поддерживают приложение Content-Type/xhtml+xml. [2]

Проверка режима

В большинстве браузеров расширение объектной модели документа document.compatMode указывает режим рендеринга текущей страницы. В стандартном и почти стандартном режиме document.compatMode содержит значение «CSS1Compat», а в режиме совместимости оно равно «BackCompat». [8]

Кроме того, в Mozilla Firefox и Opera режим рендеринга, используемый для данной страницы, указывается в информационном окне «Информация о странице».

Рекомендации

  1. ^ «Каскадные таблицы стилей: браузеры CSS» . Консорциум Всемирной паутины . 19 декабря 2001 года . Проверено 27 мая 2007 г.
  2. ^ abc Сивонен, Анри. «Активация режимов браузера с помощью Doctype» . Проверено 15 марта 2011 г.
  3. ^ «Изображения, таблицы и загадочные пробелы». Центр разработчиков Mozilla. Архивировано из оригинала 22 мая 2017 года . Проверено 27 мая 2007 г.
  4. ^ «Исправление наследования таблиц в режиме причуд» . Центр разработчиков Mozilla. Архивировано из оригинала 3 марта 2016 года . Проверено 27 мая 2007 г.
  5. ^ "Режим "Почти стандартов" Геккона" . Центр разработчиков Mozilla. Архивировано из оригинала 3 июня 2004 года . Проверено 27 мая 2007 г.
  6. Уилсон, Крис (15 августа 2005 г.). «Пролог <?xml>, строгий режим и XHTML в IE». IEBlog . MSDN . Проверено 27 мая 2007 г.
  7. ^ «Руководство по совместимости HTML». XHTML 1.0 — расширяемый язык разметки гипертекста (второе издание) . Консорциум Всемирной паутины . 1 августа 2002 года . Проверено 14 февраля 2009 г.
  8. Кох, Питер-Пол (2 февраля 2009 г.). "Разнообразный". Совместимость W3C DOM — HTML . Режим причуд . Проверено 14 февраля 2009 г.

Внешние ссылки