Тег DOCTYPE в HTML: что это и зачем нужен

Тег <!DOCTYPE> — так его обычно называют, хотя формально это не тег, а объявление в самой первой строке файла, ещё до тега <html>. Оно сообщает браузеру, что документ написан по актуальному стандарту HTML, и включает полноценный («standards») режим отрисовки страницы вместо режима совместимости со старой вёрсткой.

HTML
<!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 ничего не выводит на экран сам по себе. Вместо этого пример того, где именно он стоит в структуре документа:

HTML
<!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 modeDoctype должен быть буквально первым символом в файле
Скопирован старый DTD HTML 4.01 «на всякий случай»Работает, но не даёт ничего, кроме лишнего кодаИспользовать короткую форму <!DOCTYPE html>
Категория
Поделиться в социальных сетях

Отправить комментарий

0 Комментарии

Отправить комментарий (0)

#buttons=(Хорошо) #days=(20)

Мы используем файлы cookie для улучшения работы сайта. Подробнее
Хорошо
×