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 , но позволяет добавлять модули. |
Любым доктайпам, кроме самого первого в этой таблице, подпевают динозавры. Вы вряд ли не будете их использовать в трезвом виде или не на спор, но знать, какими они были, — отнюдь не лишнее для истинного джентельмена.
Поддержка браузерами
DOCTYPE |
+ | + | + | + | + |
6 лет занимаюсь версткой, но сегодня впервые узнал слово фреймсет. Я так понял, это что-то страшное, что нельзя использовать с большинством доктайпов. Гугл подсказал, что оказывается реально есть такой тег !!! Реальная жесть, как хорошо, что я про него раньше не знал, а теперь он, по ходу, и не нужен никому
@Роман, вот-вот, сначала неизвестно, а потом ненужно :)