Элемент DOCTYPE в HTML¶
<!DOCTYPE html> — это объявление типа документа (от англ. document type declaration), которое указывает браузеру, что документ написан на языке разметки HTML и соответствует стандартам конкретной версии спецификации. В HTML5 данная конструкция является обязательной частью синтаксиса и располагается самой первой строкой исходного кода веб-страницы, перед тегом <html>.
¶Назначение и принцип работы
Основная функция объявления DOCTYPE — переключение браузера в «стандартный режим» (standards mode) обработки страницы. Современные браузеры используют эту строку для определения того, как интерпретировать CSS и разметку: в соответствии с рекомендациями W3C или в режиме совместимости с устаревшими браузерами. Отсутствие корректного DOCTYPE приводит к активации «режима совместимости» (quirks mode), при котором браузер имитирует поведение старых версий Internet Explorer, что вызывает ошибки в отображении страниц, созданных по современным стандартам.
¶История развития
¶Версии HTML 4 и XHTML
До появления HTML5 объявление DOCTYPE было громоздкой конструкцией, содержащей ссылку на официальный DTD (Document Type Definition — определение типа документа). В HTML 4.01 существовало три варианта:
- Строгий (Strict) —
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">` — запрещал использование устаревших элементов и атрибутов. - Переходный (Transitional) —
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><font>`.— допускал применение презентационных тегов вроде - С фреймами (Frameset) — использовался для документов с фреймовой структурой.
Для XHTML 1.0 применялись аналогичные объявления, но с указанием пространства имён XML, например: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">`.
¶Стандарт HTML5
С принятием спецификации HTML5 в 2014 году объявление было радикально упрощено. Разработчики отказались от ссылок на внешние DTD, поскольку браузеры фактически не использовали их для проверки документа. Единственным допустимым вариантом стало короткое <!DOCTYPE html>. Регистр символов не имеет значения, однако по сложившейся практике принято писать заглавными буквами.
¶Правила использования
Объявление DOCTYPE не является HTML-тегом в классическом понимании — это инструкция для браузера, поэтому она не имеет закрывающего тега и не требует соблюдения правил вложенности. Ключевые требования:
- Размещается строго в первой строке документа, до любых комментариев, пробелов или BOM-последовательностей.
- Не наследуется и не может быть задано через CSS или JavaScript.
- В HTML5 не имеет атрибутов — любые дополнительные параметры игнорируются.
- При использовании формата XHTML (включая HTML5, поданный с XML-типом содержимого) объявление должно быть записано в нижнем регистре:
<!doctype html>.
¶Влияние на отображение страницы
Отсутствие DOCTYPE или его некорректное написание является одной из наиболее частых причин проблем с вёрсткой. В режиме совместимости браузеры применяют иные правила вычисления размеров элементов (модель блока), иную типографику и обработку ошибок в CSS. Например, в quirks mode ширина элемента width включает в себя padding и border, тогда как в стандартном режиме эти свойства добавляются к указанной ширине. Это приводит к смещению блоков, «разъезжанию» сетки сайта и некорректной работе адаптивных макетов.
Промежуточный вариант — «почти стандартный режим» (almost standards mode) — возникает при использовании DOCTYPE для переходного HTML 4.01 и отличается лишь обработкой высоты строк в таблицах.
¶Проверка корректности
Валидатор W3C (Markup Validation Service) позволяет проверить наличие и корректность объявления DOCTYPE. При прохождении валидации документ должен начинаться с правильной строки, соответствующей заявленному типу содержимого. Для HTML5 достаточно проверить наличие <!DOCTYPE html>; остальные версии требуют точного совпадения строки с эталоном из спецификации.
¶Распространённые ошибки
- Написание DOCTYPE внутри тега
<html>или после него — браузер в этом случае игнорирует объявление. - Использование устаревших вариантов для HTML5-документов — не является синтаксической ошибкой, но избыточно.
- Добавление пробела или комментария перед строкой — приводит к активации режима совместимости в Internet Explorer.
- Путаница между HTML и XHTML: для XHTML-документов, подаваемых как
application/xhtml+xml, DOCTYPE необязателен, но рекомендуется для совместимости.
¶Значение в современной веб-разработке
В условиях широкого распространения HTML5 объявление <!DOCTYPE html> стало де-факто стандартом для всех новых веб-страниц. Оно одинаково воспринимается всеми современными браузерами, включая мобильные, и не требует указания версии. Системы управления контентом и фреймворки автоматически включают эту строку в генерируемые шаблоны.
Несмотря на кажущуюся простоту, корректное объявление DOCTYPE остаётся обязательным условием предсказуемого рендеринга и кросбраузерной совместимости. Его отсутствие считается грубой ошибкой при профессиональной вёрстке, поскольку напрямую влияет на пользовательский опыт и корректность работы интерактивных элементов, размеры которых рассчитываются на основе стандартной блочной модели.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →

