Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В вычислении , причуды режим относится к технике , используемой некоторыми браузерами ради сохранения обратной совместимости с веб - страниц , предназначенных для старых веб - браузеров , а не строго соблюдения W3C и IETF стандартов в стандартном режиме .

Обзор [ править ]

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

  • HTML , язык разметки, разработанный для использования в Интернете, который описывает структуру и содержимое страницы; а также
  • CSS , обобщенный язык таблиц стилей , который определяет, как страница должна отображаться на различных носителях (визуальные стили для отображения на экране, стили печати для использования при печати страницы, звуковые стили для использования при чтении страницы вслух средством чтения с экрана и т. Д. .).

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

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

Чтобы поддерживать совместимость с максимально возможным количеством веб-страниц, современные веб-браузеры обычно разрабатываются с несколькими режимами визуализации: в «стандартном режиме» страницы отображаются в соответствии со спецификациями HTML и CSS, а в «режиме причуд» делаются попытки имитировать поведение старых браузеров. Некоторые браузеры (основанный на Mozilla «s Gecko рендеринг, или 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 PUBLIC>

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

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

<? xml version = "1.0" encoding = "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 будет использовать режим quirks:

<! - Этот комментарий переведет 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]

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

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

Проверка режима [ править ]

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

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

Ссылки [ править ]

  1. ^ «Каскадные таблицы стилей: браузеры CSS» . Консорциум World Wide Web . 19 декабря 2001 . Проверено 27 мая 2007 года .
  2. ^ a b c Сивонен, Анри. «Активация режимов браузера с помощью Doctype» . Проверено 15 марта 2011 года .
  3. ^ «Изображения, таблицы и загадочные пробелы» . Центр разработчиков Mozilla . Проверено 27 мая 2007 года .
  4. ^ «Исправление наследования таблиц в режиме причуд» . Центр разработчиков Mozilla . Проверено 27 мая 2007 года .
  5. ^ "Почти стандартный" режим Геккона " . Центр разработчиков Mozilla . Проверено 27 мая 2007 года .
  6. Уилсон, Крис (15 августа 2005 г.). «Пролог <? Xml>, строгий режим и XHTML в IE» . IEBlog . MSDN . Проверено 27 мая 2007 года .
  7. ^ «Рекомендации по совместимости с HTML» . XHTML 1.0 Расширяемый язык разметки гипертекста (второе издание) . Консорциум World Wide Web . 1 августа 2002 . Проверено 14 февраля 2009 года .
  8. Перейти ↑ Koch, Peter-Paul (2 февраля 2009 г.). «Разное» . Совместимость с W3C DOM - HTML . QuirksMode . Проверено 14 февраля 2009 года .

Внешние ссылки [ править ]

  • Quirks Mode Living Standard
  • Служба проверки разметки W3C
  • Тестирование обработки документа в браузере
  • Quirksmode.org: режим Quirks и строгий режим
  • Букмарклет, который сообщает режим документа
  • Эрик Мейер о CSS: выбор режима рендеринга
  • Объяснение MDC сниффинга Mozilla DOCTYPE
  • Документация по режиму совместимости в браузерах на основе Mozilla
  • Объяснение режима причуд в браузере Opera Software
  • Что происходит в режиме Quirks?