Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Режим совместимости (Quirks Mode) и стандартный режим (Standards Mode)

Эта статья нуждается в техническом обзоре. Как вы можете помочь.

Эта статья нуждается в редакционном обзоре. Как вы можете помочь.

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

В прошлом веба, страницы писались в двух версиях: Одна для браузера Netscape Navigator, а другая для браузера Microsoft Internet Explorer. Когда W3C создавал новые веб стандарты, браузеры не могли просто начать использовать их, так как это могло сломать большинство существующих сайтов в вебе. Для этого браузеры внедрили два разных режима работы с сайтами соответствующими новым стандартам и с устаревшими сайтами. 

На сегодняшний день существует три режима, который используют движки разметки (layout engines) браузеров: режим совместимости (quirks mode), частично стандартный режим (almost standards mode) , и стандартный режим (full standards mode). В режиме совместимости (quirks mode), эмулируется не стандартное поведение браузеров Navigator 4 и Internet Explorer 5. Это необходимое условие для поддержки сайтов, которые были созданы до начала широкого применения веб стандартов. В стандартном режиме ( full standards mode ), поведение браузера соответствует (будем надеяться) описанному в HTML и CSS спецификациях. В частично стандартном режиме ( almost standards mode ) заимплементирована маленькая часть так называемых "странностей" ( quirks ).

Как браузеры понимают, какой режим использовать?

Для HTML документов, браузеры используют DOCTYPE в самом начале документа, чтобы решить в каком режиме обрабатывать документ. Если вы хотите, чтобы ваша страница использовала стандартный режим, убедитесь, что на ней находится инструкция DOCTYPE как в примере ниже:

<!DOCTYPE html>
<html>
  <head>
    <meta charset=UTF-8>
    <title>Hello World!</title>
  </head>
  <body>
  </body>
</html>

Инструкция DOCTYPE , в таком виде, как показано в примере, <!DOCTYPE html>, самый простой способ обеспечить стандартный режим, и рекомендован для HTML5 страниц. Для более ранних версии HTML рекомендованы другие варианты, но все существующие на сегодняшний день браузеры будут использовать стандартный режим с таким DOCTYPE, даже Internet Explorer 6. Нет причин использовать более сложный DOCTYPE. Если вы используете какой-либо другой DOCTYPE, вы можете попасть под частично стандартный режим или режим совместимости.

Удостоверьтесь, что вы указываете DOCTYPE в самом начале вашего HTML документа. Если на странице будет что-либо до DOCTYPE, комментарий или XML declaration , в браузерах Internet Explorer 9 и старше вызовет режим совместимости.

В HTML5, единственная цель DOCTYPE это активировать стандартный режим. Более старые версии HTML придавали дополнительные значения использованию DOCTYPE, но ни один браузер никогда не использовал DOCTYPE для чего-либо кроме переключения между режимом совместимости и стандартным режимом. 

Смотрите также более детальное описание того, как разные браузеры выбирают режимы.

XHTML

Если вы поставляете вашу страницу в формате XHTML используя MIME тип application/xhtml+xml  в HTTP хэдере Content-Type , вам не нужно указывать DOCTYPE для активации стандартного режима, так как подобные документы всегда обрабатываются в стандартном режиме.  Однако имейте в виду, что в в Internet Explorer 8 вместо контента такой страницы вы увидите show a download dialog для неизвестного формата, так как первая версия Internet Explorer в которой поддерживается XHTML это Internet Explorer 9.

Если вы поставляете  XHTML контент , используя MIME тип text/html , браузер будет читать его как HTML, и вам нужно будет указать DOCTYPE, чтобы использовать стандартный режим. 

Как узнать, какой режим используется?

В Firefox, выберите "Информация о странице" ( View Page Info ) из контекстного меню, и посмотрите на значение "Тип визуализации" ( Render Mode ).

В Internet Explorer, нажмите F12, и посмотрите на значение Тип документа ( Document Mode ).

В чем разница между режимами?

Смотрите list of quirks и almost standards mode для того, чтобы увидеть разницу между режимами.

Метки документа и участники

 Внесли вклад в эту страницу: lerniri
 Обновлялась последний раз: lerniri,