Перейти к содержимому

Объявление <!DOCTYPE> в HTML

Объявление <!DOCTYPE> — это первая строка кода в документе HTML или XHTML. Оно указывает версию HTML, используемую в документе. Каждый документ HTML должен начинаться с этого объявления, чтобы браузеры отображали страницу в режиме стандартов (Standards Mode), а не в режиме совместимости (Quirks Mode), что обеспечивает соответствие веб-стандартам. В HTML 4.01 это объявление ссылается на Определение типа документа (DTD), которое указывает структуру и допустимые элементы документа XML.

Объявление <!DOCTYPE> указывается перед тегом <html>. Объявление не чувствительно к регистру.

Синтаксис

Устаревший синтаксис DTD

html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">

Параметры <!DOCTYPE>

Корневой элемент — родительский элемент, содержащий все остальные элементы. Для HTML это тег <html>.

Публичность — указывает, является ли DTD PUBLIC или SYSTEM. Для HTML/XHTML значение равно PUBLIC.

Регистрация — исторически указывала статус регистрации в ISO (+ или -). Для DTD W3C это обычно опускается.

Организация — имя разработчика DTD. Для HTML/XHTML это W3C.

Тип — тип документа. Для HTML/XHTML значение равно DTD.

Имя — уникальный идентификатор, описывающий DTD.

Язык — язык документа (две заглавные буквы). Для HTML/XHTML это обычно EN.

URL — URL описания типа документа (например, https://www.w3.org/TR/html4/strict.dtd).

Типы объявления <!DOCTYPE> для HTML

Современные документы HTML используют одно упрощённое объявление. В устаревшем HTML 4.01 существовало три типа:

HTML5

html
<!DOCTYPE html>

Strict — содержит все элементы и атрибуты HTML. Однако презентационные или устаревшие элементы не включаются.

html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">

Transitional — содержит все элементы и атрибуты HTML, включая презентационные и устаревшие элементы. Фреймы не допускаются.

html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">

Frameset — аналогичен Transitional, но позволяет использовать фреймы.

html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "https://www.w3.org/TR/html4/frameset.dtd">

Пример объявления HTML <!DOCTYPE>:

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <h2>Elements example</h2>
    <p>This is some paragraph.</p>
    <p>This is another paragraph <br /> with  line break.</p>
  </body>
</html>

Результат

paragraph

Типы объявления <!DOCTYPE> для XHTML

Здесь вы можете найти типы объявления <!DOCTYPE> для XHTML.

XHTML 1.0 Strict

Этот DTD включает все элементы и атрибуты HTML, за исключением презентационных или устаревших элементов. Этот DTD не допускает использование фреймов.

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

XHTML 1.0 Transitional

Этот DTD включает все элементы и атрибуты HTML, а также презентационные и устаревшие элементы. Фреймкеты не допускаются.

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

XHTML 1.0 Frameset

Этот DTD аналогичен XHTML 1.0 Transitional, но фреймкеты допускаются.

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

XHTML 1.1

Этот DTD аналогичен XHTML 1.0 Strict, но позволяет добавлять модули (например, для поддержки руби-аннотаций в восточноазиатских языках).

html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Практика

Какие из следующих утверждений об объявлении HTML DOCTYPE являются верными?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.