17 Липень 2015
Рубрика: уроки

Уроки по вёрстке сайтов: что такое DOCTYPE?

DOCTYPE когда-то был важной частью вёрстки. Сегодня далеко не каждый программист даже сможет ответить, что это. Чтобы исправить эту оплошность, предлагаю небольшой экскурс в историю вёрстки на тему доктайпов.

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 + + + + +
Тепер я хочу бачити коментарі 2