Doctype (Document Type Declaration или DTD) — это часть html-кода страницы, “инструкция”, которая объявляет тип документа и объясняет браузеру, в какой версии языка разметки он сверстан. Doctype должен указываться в самом верху документа перед тегом <html>. Сам doctype при этом тегом не является.

Doctype не регистрозависим и не требует закрывающего тега. Нужен он для того, чтобы браузер понимал, как обрабатывать текущий документ. Причина в том, что до HTML5 существовало несколько версий HTML, а также более строгий вариант разметки XHTML.

Чтобы более древние версии сайтов отображались нормально во всех браузерах, и был придуман doctype.

Виды Doctype

HTML 5
<!DOCTYPE html> Самая свежая версия, сейчас используется на подавляющем большинстве сайтов. Содержит указания, что сайт свёрстан с использованием html5-тегов и сообщает браузеру, что тот должен предоставить доступ ко всем свойствам и элементам html5.
HTML 4.01
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> HTML 4.01 Strict — содержит все HTML элементы и атрибуты, но не включает в себя устаревшие презентационные элементы (например, font) и фреймсет.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> HTML 4.01 Transitional — содержит все HTML элементы и атрибуты, также устаревшиие презентационные. Фреймсеты запрещены.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> HTML 4.01 Frameset — аналогичен HTML 4.01 Transitional, но позволяет использовать фреймсет.
XHTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> XHTML 1.0 Strict — включает все HTML элементы и атрибуты, кроме устаревших презентационных. Фреймсеты запрещены.Код должен соблюдать стандарты XML.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> XHTML 1.0 Transitional — включает все HTML элементы и атрибуты, вместе с устаревшими презентационными. Фреймсеты запрещены. Код должен соблюдать стандарты XML.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> XHTML 1.0 Frameset — аналогичен XHTML 1.0 Transitional, но позволяет использовать фреймсеты. Код должен соблюдать стандарты XML.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> XHTML 1.1 This DTD — аналогичен XHTML 1.0 Strict , но позволяет добавлять модули.

Любым доктайпам, кроме самого первого в этой таблице, подпевают динозавры. Вы вряд ли не будете их использовать в трезвом виде или не на спор, но знать, какими они были, — отнюдь не лишнее для истинного джентельмена.

Поддержка браузерами

Google Chrome Internet Explorer Firefox Safari Opera
DOCTYPE + + + + +

Коменти

Роман

6 лет занимаюсь версткой, но сегодня впервые узнал слово фреймсет. Я так понял, это что-то страшное, что нельзя использовать с большинством доктайпов. Гугл подсказал, что оказывается реально есть такой тег !!! Реальная жесть, как хорошо, что я про него раньше не знал, а теперь он, по ходу, и не нужен никому

Назар Токарь

@Роман, вот-вот, сначала неизвестно, а потом ненужно :)