Что такое DOCTYPE и с чем его едят?

doctype

Каждый, кто имеет дело с html-кодом, верстает или пока еще только учится верстать сайты, просто обязан знать о том, что в начале каждой HTML страницы перед тегом должен стоять тег DOCTYPE.

Именно о нем то мы сегодня и поговорим с Вами.

Тег DOCTYPE (Document Type Definition) в начале HTML страницы указывает на тип документа, который вы будете использовать при написании HTML-кода страницы. Это непарный тег, то есть у него нет закрывающего тега.


Нужно понимать, что строчка, в которой прописывается DOCTYPE — это не просто очередной HTML тег. Это важная инструкция, с помощью которой мы говорим браузеру, какая версия HTML использовалась при написании страницы.

Главным преимуществом использования DOCTYPE является то, что ваш сайт будет правильно работать во всех браузерах.

Какие существуют виды DOCTYPE?

Cуществует несколько видов DOCTYPE. Есть строгие виды (strict), которые работают на основе только определенных тегов, есть переходные (transitional), которые допускают возможность включения дополнительных тегов, есть такие, которые работают с фреймами (frameset).

Подробно в этой статье я не буду рассматривать каждый из них, так как это не является моей целью, просто перечислю:

 HTML 5
 HTML 4.01 Strict
 HTML 4.01 Transitional
 HTML 4.01 Frameset
 XHTML 1.0 Strict
 XHTML 1.0 Transitional
 XHTML 1.0 Frameset
 XHTML 1.1

Подробную информацию по каждому виду DOCTYPE вы можете найти в интернете, просто введя в поиск нужную фразу, поэтому останавливаться на этом мы не будем.

Итак, поехали дальше...

Что касается использования разных видов DOCTYPE, следует иметь ввиду, что если вы изначально писали свой сайт в одном DOCTYPE, то не рекомендуется его менять в будущем на какой-то другой, потому что могут возникнуть проблемы с правильным отображением сайта из-за того, что вместе со сменой DOCTYPE вы автоматически поменяете правила обработки тегов браузерами.

Когда вы выбираете тот или иной DOCTYPE, вы автоматически выбираете определенные правила, по которым должен анализироваться код в браузерах.

Поэтому DOCTYPE нужно выбирать для сайта, изначально хорошенько подумав, в соответствии с тем, какой вам будет нужен вид обработки HTML кода браузерами, и впоследствии уже его не менять.

Только представьте, сколько проблем раньше (почему раньше, объясню чуть ниже) несло верстальщику наличие нескольких видов DOCTYPE, между которыми приходилось постоянно выбирать, какой лучше использовать, и думать, не ошибся ли ты в своем выборе.

Можно ли вообще обойтись без DOCTYPE?

У тех, кто не любит заострять свое внимание на разных мелочах, может возникнуть вполне естественный вопрос: «А зачем мне все это нужно? Может, мне вообще не использовать DOCTYPE?»

Конечно, теоретически можно его и не указывать, но тогда вы сидите на пороховой бочке замедленного действия, не зная точно когда она рванет (а рванет она 100%).

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

Так что же делать, если не хочется во все это вникать в подробностях?

Преимущества использования DOCTYPE HTML5.

Хорошая новость состоит в том, что с выходом последней версии HTML5 (которая, кстати, все еще находится в процессе разработки, по некоторым данным окончательный стандартный вариант обещают предоставить в 2014 году) стало намного удобней выбирать DOCTYPE для своих сайтов.

Дело в том, что правила DOCTYPE HTML5 являются универсальными, включают в себя правила предыдущей версии, а также возможность работы с HTML 4 тегами и в какой-то степени с XHTML, и, насколько я понимаю, объединяют в себе возможности всех своих предшественников, адаптируя их для работы в новых браузерах.

Поэтому сейчас, когда я верстаю, то уже не задумываюсь, какой тип DOCTYPE мне выбрать, а ставлю на первой строчке

 <!DOCTYPE html>

Это все, что нужно написать, чтобы указать что это DOCTYPE HTML5. По сравнению с прежними своими собратьями, DOCTYPE HTML5 не основан на SGML (стандартном обобщённом языке разметки), поэтому там нет тех данных, которые указывались до этого, а следовательно — в нем присутствует только короткая команда. И дальше уже идет сам документ:

Здесь пишете название.Здесь содержится контент.

Согласитесь, что намного проще запомнить такую короткую строчку, чем каждый раз напрягаться, пытаясь вспомнить или найти где-то длинный код, который должен быть написан при использовании других версий.

Что касается браузеров: как старые браузеры относятся к DOCTYPE HTML5? Не возникнут ли проблемы с этим?

По этому поводу хочу сказать, что:

Во-первых, мы должны равняться на прогресс и на будущее, а будущее — за новыми браузерами, и сейчас становится все-таки меньше и меньше людей, использующих старые браузеры.
А во-вторых, Doctype HTML5 так устроен, что даже браузеры, которые в принципе не были созданы для того, чтобы поддерживать его (IE (начиная с IE8), старые версии FireFox, Opera, Safari), увидев команду , сразу же переключают содержимое в стандартный режим.

Это значит, что если вы сегодня начнете создавать свои страницы на основе DOCTYPE HTML5, то можете быть уверены в том, что им обеспечена долгая жизнь.

Какой из всего вышесказанного мы можем сделать вывод?

Использовать DOCTYPE необходимо, если не хотите впоследствии решать всяческие проблемы, связанные с его отсутствием (нужны они вам?).

И использовать лучше всего последнюю версию DOCTYPE HTML5.

Очевидно, что многое изменилось и продолжает меняться к лучшему в этом направлении. Все это делается для того, чтобы облегчить нам с вами жизнь и сделать нашу работу максимально удобной, что рисует довольно яркие картины в перспективе!

Желаю успехов!

И не забываем подписываться на обновления.

Обновления блога:

Вы еще не читаете нашу ?
Тогда получайте новые статьи на E-mail:
Моя статья помогла Вам? Это хорошо! Теперь не нужно жадничать - поделитесь этой статьей с друзьями в социальных сетях.
Хотите быть в курсе того, что происходит на сайте? Читайте меня в Твиттере.

Комментарии запрещены.