Как менялся тег DOCTYPE с подробным пояснением его атрибутов

Объявление <!DOCTYPE> эволюционировало вместе с развитием стандартов HTML, отражая изменения в спецификациях и подходах к валидации документов. Эти изменения отразились в упрощении синтаксиса и уменьшении необходимости в детальных указаниях о типе документа, что, в свою очередь, облегчило работу разработчиков и повысило совместимость кода.

HTML до версии 4.01 и XHTML

В ранних версиях HTML и XHTML, <!DOCTYPE> был более сложным и включал ссылку на DTD (Document Type Definition). DTD определял правила структуры документа, включая допустимые элементы и атрибуты. Это было необходимо для валидации документа по стандартам, что помогало обеспечить его корректное отображение в различных браузерах.

HTML 4.01

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  • PUBLIC указывает, что DTD является публичным (а не системным) идентификатором.
  • "-//W3C//DTD HTML 4.01 Transitional//EN" является публичным идентификатором, где W3C — организация, DTD HTML 4.01 Transitional — версия и тип DTD, EN — язык (английский).
  • URL (http://www.w3.org/TR/html4/loose.dtd) представляет системный идентификатор, который указывает на местоположение DTD.

Версии Transitional и Strict определяли различные уровни совместимости с предыдущими стандартами.

XHTML 1.0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML требовал более строгого синтаксиса и закрытия всех тегов. XHTML 1.0 Strict обеспечивал соответствие более строгим правилам, чем Transitional или Frameset.

HTML5

С приходом HTML5, <!DOCTYPE> был значительно упрощен:

<!DOCTYPE html>

Это объявление говорит браузерам использовать стандарт HTML5 для обработки документа. HTML5 не требует ссылки на DTD, поскольку он не базируется на SGML или XML, упрощая и унифицируя начало каждого HTML-документа.

Зачем менялся <!DOCTYPE>

  • Упрощение: Переход к более простому <!DOCTYPE> в HTML5 упростил работу разработчиков, избавив их от необходимости помнить сложные строковые идентификаторы и URL DTD.
  • Улучшенная совместимость: Упрощенное объявление обеспечивает лучшую совместимость между различными браузерами и упрощает разработку веб-стандартов.
  • Адаптация к реальности: По мере развития веба и HTML потребность в сложных DTD для валидации уменьшилась, так как фокус сместился на упрощение и доступность веб-разработки для всех.

Упрощение <!DOCTYPE> в HTML5 является частью широких усилий по сделанию веб-разработки более доступной и удобной. Эти изменения отражают общую тенденцию к упрощению спецификаций и стандартов, чтобы облегчить создание кроссбраузерных и стандарт-комплиантных веб-страниц. С упрощением <!DOCTYPE> разработчики теперь могут сосредоточиться на семантике и структуре своего HTML, не беспокоясь о строгих правилах DTD и совместимости с различными версиями HTML.

Последствия для веб-разработки

  • Стандартный режим vs. режим совместимости: Упрощенное объявление <!DOCTYPE html> автоматически включает стандартный режим (также известный как режим совместимости) во всех современных браузерах, что помогает обеспечить единообразное отображение веб-страниц. Это избавляет от проблем, связанных с различиями в рендеринге между режимами совместимости и стандартными режимами, которые существовали в прошлом.
  • Упрощение обучения: Для новичков в веб-разработке не требуется запоминать различные типы <!DOCTYPE> и условия их использования. Это делает обучение HTML более прямолинейным и доступным.
  • Фокус на современных стандартах: Упрощение <!DOCTYPE> отражает переход от старых стандартов и практик к современным подходам в веб-разработке, включая адаптивный дизайн, доступность и интернационализацию.
  • Улучшение инструментов разработки: Современные инструменты разработки и библиотеки часто предполагают использование HTML5 и соответствующего <!DOCTYPE>, что упрощает интеграцию и использование передовых веб-технологий.
Юрий Савченко

Привет, моё имя Юрий, и мне 39 лет. Родом из Грозного. Сейчас живу и работаю в Краснодаре, в одном из крупнейших маркетинговых агентств города. Я являюсь основным автором статей на проекте Code4web.

В основном пишу в такие категории как Javascript, HTML и Офтопик.

В свободное время я — лютый геймер. Обожаю игры серии Dark Souls и RPG. Это такой мой способ расслабиться и отдохнуть от повседневной рутины.

Code4Web