# 1. 9. DOCTYPE

`<!DOCTYPE html>` — первое, что нужно указать в любом HTML-документе.

Чтобы понять, для чего указывать `DOCTYPE`, нужно вернуться в прошлое. В 2005 году верстальщики уже создавали сайты, но делали это по предыдущей версии спецификации — HTML4.01. Спецификация постоянно развивается и развилась сейчас до версии 5. В 2005 году верстальщик мог использовать тег `<basefont>` и для его времени это был обычный тег. В нынешней вёрстке такого тега уже не существует, так как по современной спецификации он считается устаревшим. Но когда мы открываем сайт с устаревшими тегами в современных браузерах, сайт выглядит так же, как и в 2005 году. Почему? Дело в том, что `DOCTYPE` сообщает браузеру, а точнее его движку отображения, какая именно версия HTML используется.

### Что же такое DOCTYPE? <a href="#chto-zhe-takoe-doctype" id="chto-zhe-takoe-doctype"></a>

Ключевое слово `DOCTYPE` в файле HTML — это декларация типа документа: DOC (сокращение от слова document «документ») + TYPE (с английского «тип»).

### Зачем указывать DOCTYPE? <a href="#zachem-ukazivat-doctype" id="zachem-ukazivat-doctype"></a>

Если вы не укажете `DOCTYPE`, браузер будет исходить из предположения, что вы писали код страницы с ошибками. В этом режиме браузер попытается разобрать вашу страницу по правилам обратной совместимости и выведет на экран, например, CSS так, как его вывел бы Internet Explorer 4 версии.

### Проблема <a href="#problema" id="problema"></a>

На заре развития браузеров производители спешили захватить внимание пользователей «фичами» и не очень следили за стандартами. Более того, трактовали их как им удобнее. Это можно заметить и сейчас. Если проверить сайт на кроссбраузерность, то при одной и той же разметке и стилях, страница может выглядеть по-разному.

С одной стороны решить эту проблему несложно — производителям браузеров стоит лишь соблюдать требования спецификации W3C. На практике всё сложней — если резко перейти на новые правила игры, многие страницы перестанут отображаться правильно, тысячи сайтов попросту сломаются.

### Решение <a href="#reshenie" id="reshenie"></a>

Решением стала возможность разработчикам самим выбрать тот стандарт, который они использовали при создании проектов. Это решение разработчик выражает с помощью `DOCTYPE`.

Вот несколько старых вариантов:

* `<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "www.w3.org/TR/html4/strict.dtd">`
* `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">`
* `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">`

Используйте современные стандарты и современный — `<!DOCTYPE html>`.
