Эта статья нуждается в техническом обзоре. Как вы можете помочь.
Эта статья нуждается в редакционном обзоре. Как вы можете помочь.
Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.
В прошлом веба, страницы писались в двух версиях: Одна для браузера 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 для того, чтобы увидеть разницу между режимами.