Итак... в этой заметке я хотела бы поделиться с общественностью своим мнением насчёт стандартов, и зачем они нужны.
Многие начинающие веб-дизайнеры не знают, а прогрессирующие не помнят что было когда-то такое время когда чётких правил написания разметки гипертекста не было, а тех которые были браузерам и пользователям не хватало и они выдумывали свои теги и атрибуты какие хотели. Чтобы как-то разгрести всю эту кашу все теги описывались в так называемые спецификации, в которых группа w3c пытаясь урегулировать хаос предписывала браузерам что и как они должны отображать. Чтобы эти каши не путались в браузерах и заодно в головах вебмастеров было предложено (в спецификации HTML2.0) а потом стало обязательным (в спецификации HTML3.2) указание типа спецификации которой нужно придерживаться при отображении страницы. Указать это можно с помощью тега <!DOCTYPE> в начале документа.
Естественно были популярные браузеры которые на спецификации плевали, ну или по крайней мере не очень придерживались. И были разработчики которые верстали под популярные браузеры и на спецификации ещё больше плевали. Чтобы их сайты не разваливались, если вдруг кто-то на эту страницу свёрстанную не по стандарту зайдёт, в браузеры ввели опцию отображать страницу "по старинке", если этот самый DOCTYPE не был указан. И было это во время Internet Explorer 5 под макось. С тех самых вариант отображения "по старинке" (quirks mode - англ. "причудливый режим") у всех браузеров менялся, и в общем до сих пор у всех разный. Поэтому чтобы верстать в quiks mode нужно учитывать особенности всех популярных браузеров.
Технолог лебедева в статье "тип документа объявлять или не объявлять" (2005 г.) утверждают " <!DOCTYPE> вам не требуется", глупенький, к счастью сейчас не 2005й год и эти слова в серьёз принемать не стоит. Сейчас все браузеры научились корректно отображать HTML в стандартном режиме, как написано в спецификации и как отображают другие браузеры. Старый браузер IE6 ежемесячно теряет больше чем по 5% всей аудитории и к концу года надеюсь сойдёт на нет. Тем более что недавно вышел IE8 который не то что HTML, а научился поддерживать CSS2.1 сразу и весь.
В "режиме соответствия стандартам" браузеры отображают код практически одинаково, без дополнительных ухищрений и хаков - это необходимая и достаточная причина для того чтобы уже начать его использовать. Для тех кто ранее верстал без него некоторые вещи необходимо будет выучить заново (ну 1-2 дня), например новую блочную модель и т.п.
Для начинающих советуется использовать "переходный" доктайп HTML 4.01 Transitional. Он учитывает все стандарты, но не отменяет устаревшие теги типа <font> и <center> и т.п. Выглядит он так:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
обязательно использовать именно такую строчку, не указание ссылки на .dtd считается ошибкой(!) и отображается "по старинке"!
Для тех кто со всеми стандартами знаком рекомендуется вариант Strict (строгий), верстать им - признак хорошего тона.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
В данном варианте допускается не использование ссылки на .dtd, но всё таки хороший тон оставить ссылку =).
Новый стандарт HTML5 пока что в состоянии черновика, и официально не должен поддерживаться, хотя поддерживается даже в IE6. Выглядит он так:
<!DOCTYPE html>
Вот так вот просто, без всяких указаний DTD (document type declaration).
Далее о главном - буду плевать в верстальщиков (динозавров) которые его не поддерживают:
1) GOOGLE - гугл состоит в рабочей группе whatwg которая занимается составлением стандарта HTML5. Уже сегодня можно найти доктайп этого стандарта на страницах результата поиска <!DOCTYPE html>. А вот на главной странице поставить забыли. Сэкономили 15 байт видимо. Можно оправдать что там и вёрстки-то нет, однако хочется чтобы гугл являл нам свет в непросвещённые умы, да.
2) яндекс - на всех страницах указан <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">, а то и вовсе не указан (например в панели вебмастера). Позор стыд и срам. Уже много лет так и висит. Когда я только начинала верстать я брала доктайп именно оттуда, и думала "ну... ничего не изменилось, фигня какая-то". Вот. И люди многие оттуда берут доктайп, я думаю.
Надо взять да и скачать главные страницы для всех доменов рунета (UPD: Скачала, см. статистику), хе-хе =) кто хочет посодействовать пишите в feedback предложения.
Ну и напоследок старенькое:
Крис Уилсон (Chris Wilson), архитектор платформы Internet Explorer, поделился с посетителями мероприятия информацией о том, что Microsoft планирует призвать создателей Web-сайтов к приведению сайтов к стандартам при разработке сайтов под IE 8.0. «Пять лет назад ни один из 200 самых популярных Web-сайтов не прибегал к использованию стандартов» — сказал Уилсон. «Сегодня стандартизированы лишь половина из этих 200 сайтов». Уилсон признал, что пока не до конца понятно, какую форму примет эта оптимизация. Но обращение к авторам сайтов с просьбой оптимизировать сайт «даст возможность делать восхитительные вещи». Дав Microsoft разрешение на то, чтобы IE 8.0 стал более стандартизированным, авторы возьмут на себя ответственность за некорректное отображение своих сайтов.
Ссылки по теме:
http://www.w3.org/QA/Tips/Doctype
https://developer.mozilla.org/en/Mozilla%27s_DOCTYPE_sniffing
https://developer.mozilla.org/en/Mozilla%27s_Quirks_Mode
https://developer.mozilla.org/en/Mozilla_Quirks_Mode_Behavior
http://www.htmlbook.ru/html/!doctype.html
http://www.webmakerslounge.com/html/pravilnyiy-doctype/
http://neveragainblog.com.ua/archives/70
http://softwaremaniacs.org/blog/2005/12/19/xhtml-you-say/
http://webmascon.com/topics/coding/25a.asp
http://hsivonen.iki.fi/doctype/.
http://habrahabr.ru/blogs/webdev/31484/ перевод SilentIT
Как распространён DOCTYPE:
Я провела исследование распространения доктайп на некоторых сайтах в рунете, подробнее читайте статью «Капля статистики: Doctype».
Комментарии:
SelenIT
08.07.2009 03:42:55
Елена
09.07.2009 20:21:27
nanomelen
18.10.2009 18:52:45
weringods
21.10.2009 06:40:06
ingwar66@gmail.com (Ингвар Л)
20.05.2010 13:38:45