Сейчас буду жаловаться. Долго и со вкусом. Начну издалека.Театр начинается с вешалки, а страница html — с
объявления типа документа, для краткости именуемого
«доктайп» (
doctype — document type declaration или
dtd). Точнее, должен начинаться — в сети можно встретить немало сайтов без доктайпа. Ничего хорошего в этом нет; если сайт уже свёрстан без доктайпа, его лучше не трогать, но создавать заново лучше с доктайпом. Кстати, страницы
без доктайпа трудно править, почему — расскажу дальше.
Доктайп сообщает браузеру данные о языке, на котором написан документ: тип языка
(html/xhml), версию
(html 4.1/xhtml 1.0), направление
(strict, transitional, frameset). Для обработки документа существует набор формальных правил, «известных» браузеру. Если браузер получает правильный доктайп, он обрабатывает страницу в соответствии с этими правилами
(в режиме стандартов — standard mode). Если не получает или получает неправильный, он переходит в
режим обратной совместимости (quirks mode) и начинает обрабатывать код, как разработчики положили на его браузерную душу. Судя по результатам, души у браузеров сильно разные.
Откуда браузер знает эти правила? Об этом должны заботиться его разработчики. Формальное описание каждой из разновидностей html публикуется Консорциумом W3C, и на эти описания равняются разработчики браузеров. Или должны равняться: самый популярный браузер Internet Explorer до сих пор не полностью поддерживает стандарты w3c. Обещал исправиться к седьмой версии, но этого не сделал. Обещает исправиться к восьмой.
Итак: Читать полностью »
27 комментариев на «Doctype: зачем он нужен и с чем его едят»
Дмитрий (1 комментарий)
Скажите пожалуйста мой блог коряво отображается в IE-9? какой код нужно вставить в Header чтобы он отображался как и на других красиво???
Княгиня (660 комментариев)
Если вас отображается коряво, проблема намного глубже, чем «вставить код в header». Это заочно не лечится.
Timur (2 комментария)
Насколько это сейчас актуально? По моему сейчас все пользуются современными браузерами и можно смело использовать HTML 5 шаблон — просто
Княгиня (660 комментариев)
Можно. Он входит в список действительных доктайпов. Но надо его использовать. Причём именно его, а не какую-нибудь кривую версию.
Al (4 комментария)
А как же быть тогда с последующим возможным дополнением кода устаревшими тегами (font, center, u), атрибутами, target=_blank последующими редакторами сайта? Ведь после их введения код перестает быть валидным при использовании доктайпа html5.
Княгиня (660 комментариев)
Не использовать, и всё. Это с одной стороны, а в другой — не сходить с ума. Если криворукий админ (точнее, контент-менеджер) пихает в сайт что попало, это проблемы его и его нанимателя, а не ваши.
Кстати, target=_blank в html5 есть.
Влад (2 комментария)
то input, начинает чуть-чуть вылезать из блока. Если же DOCTYPE убрать, то всё нормально. Насколько известным является этот баг (я например кое-как его вычислил)? И как с ним бороться (какой DOCTYPE ставить или как-то по-другому)?
Княгиня (660 комментариев)
Вы, наверное, код приводили. Код убивается при публикации комментария. Либо замените угловые скобки на подстановку, либо попробуйте код взять в <pre>.
Виктор (2 комментария)
Спасибо познавательный пост,я как то к оформлению доктайпа подходил просто скопировал вставил и все!
Княгиня (660 комментариев)
Главное — знать, откуда правильно копировать.
Виктор (2 комментария)
Это точно.Но уже освоился в данной теме.Сохраинл много шаблонов и продолжаю работать и саморазвиватся.Ваш блог один из самых любимых!
Наталья Ткачёва (1 комментарий)
Вот уж, век живи, век учись. Никогда не думала, что доктайп так важен, особенно когда увидела его «компактный» размер в HTML5. Интересно, разработчики и правда не будут больше изменять доктайп в последующих версиях языка? По идее, это облегчит жизнь верстальщикам. Что думаете по этому поводу?
Говоря об HTML5, меня крайне шокировало то, что тег head можно просто опустить, да и часть других закрывать необязательно. Привыкла к четкой структуре станиц просто. Как относитесь к этим нововведениям, используете ли в своей работе этот подход?
SelenIT (6 комментариев)
Да, короткий доктайп — это очень надолго. А необязательные теги — не нововведение HTML5, в HTML4 и более ранних версиях они тоже были и работали. Более того, для пустых элементов типа BR и IMG в HTML4 закрывающие теги были явно запрещены. HTML5, наоборот, разрешил «закрывать» такие элементы в XHTML-стиле, концевым слешем.
Княгиня (660 комментариев)
Я равняюсь на xhtml strict. Пусть он не нашёл своего места, но привычка к опрятности кода очень помогает в работе, а пятому html не противоречит.
IvanStepanov (3 комментария)
Спрасибо за разъяснение в красках, сегодня такая информация редко встречается, хотя ее актуальность не опротестована практикой — до сих пор заказчики требуют совместимость с IE8 и даже — 6!
Княгиня (660 комментариев)
Неужели и с шестым? С 8 — понимаю, сама недавно с ХР слезла, но кто держит шестой?..