В HTML (включая XHTML), используемом на веб-страницах, DOCTYPE - это строка, которая запускает один из нескольких режимов браузера (режим причуд, режим стандартов, режим почти стандартов), в зависимости от точного написания DOCTYPE. Вы хотите использовать его, чтобы выбрать режим браузера, который лучше всего подходит для вашей страницы.
Формально в SGML и XML объявление DOCTYPE является ссылкой на определение типа документа (DTD), которое определяет формальные правила синтаксиса языка разметки. Ни один браузер никогда не использовал DTD ни для чего и даже не обращался к ним. Однако они используются валидаторами разметки SGML и XML, такими как валидатор разметки W3C , за исключением режима HTML5. Поэтому выбор DOCTYPE определяет, как работает валидатор, если документ передан ему. Однако режим работы валидатора также можно выбрать в его пользовательском интерфейсе. (Процессоры SGML и XML могут использовать DOCTYPE и другими способами, но очевидно, что вопрос ограничивается контекстом HTML, веб-браузерами и тесно связанным программным обеспечением.)
Официального списка DOCTYPE не существует. Каждая спецификация или черновик HTML определяет свой собственный DOCTYPE или DOCTYPE. Набор DOCTYPE, распознаваемых браузерами при выборе режима, зависит от браузера. На практике нет причин использовать DOCTYPE, отличный от <DOCTYPE html>
определенного в HTML5 , хотя HTML5 также перечисляет несколько «устаревших DOCTYPE». Вы можете использовать этот DOCTYPE, если вам нужен режим стандартов (рекомендуется для новых страниц), и не использовать DOCTYPE, если вы хотите режим причуд (который вам может понадобиться для старых страниц).
«Стандартный режим», как правило, означает режим работы, при котором браузер наилучшим образом следует HTML, CSS, DOM и другим спецификациям. Обычно это не означает полного соответствия. «Режим причуд» отличается в разных браузерах, но, как правило, это означает попытку имитировать поведение очень старых браузеров, таких как IE 5. Цель состоит в том, чтобы старые страницы работали, исходя из предположения, что они могут полагаться на функции и ошибки в старые браузеры. Смотрите описание Что происходит в режиме Quirks? Обратите внимание, что в HTML5 существует несколько иное, более ограниченное понятие «режим причуд», которое очень похоже на документ под названием « Стандарт жизни в режиме причуд» .
Типичная проблема заключается в том, что ширина элементов рассчитывается по-разному в режиме совместимости и в стандартном режиме. Это означает, что макет страницы может быть более или менее изменен или даже полностью испорчен, если страница, предназначенная для работы в режиме причуд, просматривается в стандартном режиме (или наоборот).
Таким образом, вы должны использовать <!DOCTYPE html>
для новых страниц и сохранить любой DOCTYPE (если есть), который вы использовали для старых страниц.
Однако в некоторых браузерах режим «причуд» означает, что многие новые функции CSS не поддерживаются. Это означает, что если вы хотите улучшить старую страницу с помощью некоторой функции CSS3, вполне может потребоваться переключиться на DOCTYPE, который запускает режим стандартов. В таком случае вам необходимо просмотреть и протестировать страницу, чтобы увидеть, будет ли она работать в стандартном режиме.