Зачем нужен DOCTYPE?
![Зачем нужен DOCTYPE?](/images/articles/html-doctype.jpg)
Все, кто знаком с более-менее серьёзным языком программирования, знают, что такой вольности в написании кода, как в HTML, нет. Я знаком (с некоторыми очень даже серьёзно) с целой кучей языков программирования, и смело заявляю: нигде такой свободы, как в HTML, не существует! Однако, из-за этой свободы возникает большое количество противоречий для браузеров. Ведь им же нужно как-то отображать этот "вольный" код, и желательно, чтобы каждый браузер отобразил этот код одинаково. И тут им на помощь приходит DOCTYPE.
DOCTYPE - это объявление типа документа, другими словами, DOCTYPE означает, какую версию HTML (либо XHTML) Вы используете. Ведь не секрет, что HTML развивается уже давно, и много тегов было раньше, потом они устаревали, появлялись новые. И очень важно дать понять браузеру, какую версию HTML Вы используете или, другими словами, какой набор тегов у Вас имеется, и, главное, как его надо отображать.
Прежде чем переходить к различным вариантам DOCTYPE, я всё-таки отвечу на вопрос: "Зачем нужен DOCTYPE?". А нужен он для того, чтобы браузеры правильно отображали разметку Вашего документа. Если Вы не укажите DOCTYPE, то браузер будет добавлять "отсебятину", причём каждые браузеры будут добавлять свою "отсебятину". В результате, ни о какой кроссбраузерности и речи идти не может.
Существует несколько вариантов DOCTYPE, однако, в реальности я Вам советую использовать один из двух вариантов:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Данный DOCTYPE означает, что документ соответствует стандарту HTML 4.01. Это самый частоиспользуемый вариант.
Однако, для любителей чистого кода (к коим отношусь я) советую использовать такой DOCTYPE:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Этот DOCTYPE сообщает браузеру о том, что документ соответствует стандарту XHTML 1.1. Именно этот DOCTYPE стоит на этом сайте.
И, напоследок, небольшое примечание, просто ради справедливости. Дело в том, что современные браузеры прекрасно отображают сайты и без использования DOCTYPE, причём выглядит сайт примерно везде одинаково, за исключением совсем мелких вещей. Поэтому Вы, конечно, обязательно пишите DOCTYPE, но не забывайте, что с каждым годом это требуется всё меньше и меньше.
Пока я писал эту статью, у меня в голове возникла мысль, что многие из Вас не знают разницу между HTML и XHTML. И почему, на мой взгляд, XHTML лучше? На эти вопросы я отвечу в следующей статье, так что не переключайтесь.
Если Вы хотите узнать больше по HTML, то посмотрите мой бесплатный курс с примером создания сайта на HTML: http://srs.myrusakov.ru/html
-
-
Михаил Русаков
Комментарии (31):
а DOCTYPE в каждый html ставить надо?
Ответить
Да, на каждую HTML-страницу в самом начале ещё до тега <html>.
Ответить
Здравствуйте, я заметил, что когда пишешь код <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> в самом начале. То перейдя на сайт видно, что таблицы, которые я писал ранее сократились, уменьшились в высоту, а в ширину остались такими же какими были. Как можно устранить эту проблему??
Ответить
Это только в IE или в других браузерах тоже? Если только в IE, то насколько всё серьёзно? Если не очень, то лучше так и оставить, потому что решение будет очень кривое. А решение такое: Это в CSS: * { margin: 0; padding: 0; } table { border-collapse: collapse; height: 100%; } Также в style для <td> необходимо прописывать height: 6%;
Ответить
У меня firefox 4.0.1 я пока что не умею с CSS работать скоро перейду. Спасибо!
Ответить
У вас ошибка "и смело завляю: нигде такой свободы" не завляю а заявляю.
Ответить
Спасибо, подправил!
Ответить
а для html4.01 и html5 такой doctype написать правильно <!DOCTYPE html> ?
Ответить
Да.
Ответить
А как правильно писать DOCTYPE в html5 ??
Ответить
<!DOCTYPE html>
Ответить
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> Вот так?
Ответить
Нет, я же написал <!DOCTYPE html>
Ответить
Достаточно просто) Спасибо)
Ответить
Добрый день!!! у меня в опере не отоброжает сайт, подскожите что делать??? с компа все как положена, а в рабочем состоянии нет, вот код вроде все верно <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns = "http://www.w3.org/1999/xhtml"> <head> <meta http-equiv = "Content-Type" content = "text/html; charset=windows-1251" /> <title>Solnce</title> </head> <body> <h1>Solnce</h1> </body> </html>
Ответить
А в других браузерах отображает?
Ответить
Добрый день Михаил, вот так у меня получился: <!DOCTYPE html PUBLIC "-W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns = "http://www.w3.org/1999/xhtml"> <head> <meta http-equiv = "Content-type" content = "text/html; charset=windows-1251"/> <title>Фирузджон</title> </head> <body> <h1>Добро пожаловать</h1> </body> </html> Валидатор пишет "правильно", а в моем сайте почему то не светиться Навание(Фирузджон) и Заглавок(Добро пожаловать)..... смотрите пожалуйста, может тут есть ошибки у меня?
Ответить
Вот что написанно внизу сайта.... Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13 Server at firuzjon.ru Port 80
Ответить
http://myrusakov.ru/html-open-txt.html
Ответить
я все сделал по инструкции, но результаты тоже самые((((
Ответить
Файл должен называться index.html
Ответить
Ребята,если у Вас не работает DOCTYPE,меняйте кодировку страницы на ANSI
Ответить
В смысле ,если вместо русского показывают /кракозябры/.
Ответить
Здравствуйте, Михаил! Все сделал к показано в уроке №4 создание 1 html страницы, но когда пишу в титле на русском языке появляются иероглифы, на английском все в поряде. В чем причина?
Ответить
У тебя проблема с кодировкой, поищи статью про проблемы с кодировками на сайте.
Ответить
Я пишу код на HTML 4.01 Strict, на сайте есть <iframe>(гугл карты), валидацию не проходит, мне нужно поменять DOCTYPE на с фреймами? Если да, то можно для разных страниц сайта - создавать разный DOCTYPE? и как это влияет на оптимизацию?
Ответить
Корректно ли будет писать doctype вместо DOCTYPE
Ответить
к этой теме вот такой таблицы не хватает - http://htmlbook.ru/html/valid Я вначале не мог понять так какие же правила в полной мере соблюдать для того или иного DOCTYPE пока не нашел эту таблицу
Ответить
С начала темы прошло уже пять лет. Михаил, подскажите - а ведь сейчас (почти) все браузеры и устройства ориентированы на HTML5? ;-)
Ответить
На текущий момент для HTML-5 нужно писать вот так: <!DOCTYPE html>
Ответить
Здравствуете как мне сохранить и запустить<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> xmlns = "http://www.w3.org/1999/xhtml"> <head> <meta http-eguiv = "Content-Type" content = "text/html; charset=widows-1251"/> <title>Телеканал ТНТ<title> <head> <body> <body> <html> не шарю notepad++ Пожалуйста помагите!!!
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.