Тег <!DOCTYPE> — так его обычно называют, хотя формально это не тег, а объявление в самой первой строке файла, ещё до тега <html>. Оно сообщает браузеру, что документ написан по актуальному стандарту HTML, и включает полноценный («standards») режим отрисовки страницы вместо режима совместимости со старой вёрсткой.
<!DOCTYPE html>
Это вся декларация целиком, единственная которая нужна для HTML5. У неё нет закрывающего тега и нет атрибутов. Регистр букв браузер не проверяет, но писать DOCTYPE заглавными общепринятая практика для читаемости кода.
Почему это вообще важно
Без doctype (или с ошибкой в нём) браузер переходит в quirks mode — режим совместимости, который имитирует поведение браузеров 1990-х: иначе считает размеры блоков, иначе применяет некоторые CSS-свойства. Разметка от этого не ломается физически, но начинает вести себя непредсказуемо и по-разному в разных браузерах. Именно поэтому doctype обязателен, а не просто формальность.
А как было раньше
До HTML5 doctype ссылался на DTD (Document Type Definition) — длинную строку с адресом файла правил, например <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">, и таких вариантов было несколько (Strict, Transitional, Frameset). Запоминать их сегодня не нужно, единственная актуальная форма для новых страниц одна, та, что выше.
Пример: минимальная HTML5-страница целиком
У doctype нет визуального представления, это не элемент интерфейса, поэтому живого dresult-примера для него, в отличие от большинства других тегов, здесь не будет: показывать нечего, doctype ничего не выводит на экран сам по себе. Вместо этого пример того, где именно он стоит в структуре документа:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Название страницы</title>
</head>
<body>
<h1>Заголовок</h1>
<p>Текст страницы.</p>
</body>
</html>
Частые ошибки
У doctype всего одна актуальная форма, поэтому и путаница с ним обычно однотипная - не забыть его вообще или не притащить в код что-то из старых шаблонов:
| Ошибка | Что происходит | Как исправить |
|---|---|---|
| Doctype забыт полностью | Браузер переходит в quirks mode, вёрстка ведёт себя непредсказуемо | Добавить <!DOCTYPE html> самой первой строкой файла |
| Перед doctype есть пробел, перенос строки или комментарий | В некоторых браузерах это тоже включает quirks mode | Doctype должен быть буквально первым символом в файле |
| Скопирован старый DTD HTML 4.01 «на всякий случай» | Работает, но не даёт ничего, кроме лишнего кода | Использовать короткую форму <!DOCTYPE html> |