• Авторизация


DOCTYPE факты и вымысел. 13-12-2007 12:22 к комментариям - к полной версии - понравилось!


Настроение сейчас - Пью кофе (размышляю)

Вот тут копался на харде и нашел старую папочку с забавными страничками. Вообще для себя лично я давно определился сэтим вопросом, но в сети по прежнему ходят призраки doctype. Быть или не быть? Можно ли утверждать, что люди не обозначающие тип документа, просто стараются избежать ответственности пытаясь скрыть свое неумение или не желание граммотно писать код?.. К сожалению чаще всего да! Дело не в том указан доктайп или нет, просто почему-то именно в тех случаях, когда он не указан, код написан особенно отвратительно.

Впрочем давайте рассмотрение этого вопроса начнем с мнения профессионалов.

 

Андрейка Лечев

Тип документа: объявлять или не объявлять?

                                                                        22 ноября 2005

Любой, кто хоть раз заглядывал в код страниц, наверняка замечал, что многие из них начинаются со строчки <!DOCTYPE... >. Это так называемое «объявление типа документа» или Document Type Declaration (не путать с DTD — Document Type Definition).

Авторы умных книг по HTML, автоматические валидаторы и Джеффри Зельдман (Jeffrey Zeldman) утверждают, что по правилам хорошего тона использовать его нужно всегда. Если учесть тот факт, что многие сайты прекрасно отображаются в браузерах и без него, возникает резонный вопрос: «А нужен ли <!DOCTYPE> на самом деле?». Путем несложных рассуждений попытаемся это выяснить.

Откуда он взялся?

Объявление типа документа можно встретить даже в древней версии HTML, не имевшей порядкового номера и носившей странное название HTML Internet Draft. Тогда уже существовало несколько языков разметки (TEX, PostScript и SGML), которые использовались в основном для работы с научными документами (что нисколько не удивляет, так как веб вообще родился в Европейском центре ядерных исследований путем скрещивания простого гипертекста с еще более простым протоколом).

Поскольку эти языки были сложными, разработчики задумались над тем, как облегчить жизнь людям и графическим терминалам, упростив разметку. И придумали HTML, построив его на основе правил «стандартного обобщенного языка разметки» или, как его чаще называют, SGML (Standard Generalized Markup Language).

Именно в SGML было указано, что каждый документ должен начинаться с объявления его типа. В первой публичной версии спецификации HTML 2.0 говорилось о том, что следует начинать с объявления (использовалось слово should), в версии HTML 3.2 его использование стало обязательным (must start with the <!DOCTYPE> declaration).

Но ни один браузер тех времен не требовал явного указания типа документа для отображения HTML-страницы. А раз браузеры не требовали, то и разработчикам было все равно — они с легким сердцем игнорировали <!DOCTYPE> (справедливости ради стоит сказать, что речь идет о тех разработчиках, которые код «писали руками», а не посредством HotDog’а).

Стандарты и обратная совместимость

Первым браузером, обратившим внимание на тип документа, стал Internet Explorer 5.0 для Mac OS (движок Tasman). Появился он в начале 2000 года и сразу же стал лучшим с точки зрения поддержки HTML-стандартов (оговорка для зануд: Mozilla была далека от версии 1.0, а Opera продолжала безнадежно копировать MSIE для Windows).

Но на тот момент никому не был нужен браузер, умеющий «рендерить» HTML согласно стандартам. Потому что стандарты не соответствовали тому, как браузеры на практике интерпретировали HTML-код.

В результате Internet Explorer 5.0 для Mac OS показывал страницы не так, как они были задуманы, и понадобился специальный переключатель, с помощью которого можно было сказать: вести себя как обычные браузеры или по стандартам.

И таким переключателем стало объявление типа документа. Правило при этом было простое: если тип документа не объявлен или объявлен без указания адреса DTD (на этот раз речь идет о Document Type Definition), то HTML интерпретировался в режиме совместимости со «старыми» браузерами (quirky mode, впоследствии — quirks mode), если же адрес DTD указывался, то элементы отображались согласно стандартам HTML 4.01 и CSS 1.

Вот тут-то и началась новая эра — эра борьбы за стандартный код. Появились сообщения о слишком маленьких шрифтах во вложенных таблицах, о «разъезжающихся» сайтах из-за непонятной box-модели, о загадочных зазорах между картинками (Mozilla, прости) и т. д. 

И все это было связанно с тем, что разработчики не задумывались о том, что написано внутри замечательной конструкции <!DOCTYPE>.

Internet Explorer 6.0 для Windows узаконил переключение между режимами, и теперь почти все браузеры знают, что такое «стандартный режим» (standards mode) и «режим совместимости со старыми браузерами» (quirks mode). Mozilla и Safari пошли дальше: у них есть «почти стандартный режим», почти соответствующий стандартному режиму Internet Explorer 6.0. Но это уже совсем другая история...

Так указывать или не указывать?

Если вы считаете нужным указать <!DOCTYPE>, будьте любезны сделать так, чтобы ваш HTML соответствовал стандартам без исключений.

 Либо допустите исключения, если вам нужен «стандартный режим» отображения. Во всех остальных случаях <!DOCTYPE> вам не требуется. Поверьте на слово...

Вот мнение человека, который приложил руку к Яндексу. В принципе, если обобщить все сказанное выше, то можно получить примерно такие варианты.

 1. Указав доктайп, вы берете на себя ответственность писать код соответственно принятым стандартам.

Яндекс:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Результат:

This Page Is Valid HTML 4.01 Transitional!

2. Это главная страница LI

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Результат:

Validation Output: 21 Errors

Причем нет ни одной ошибки, которую я мог бы отнести к особенностям написания такой сложной системы. Все чисто человеческие. Типа амперсанда в УРЛ. От сюда можно предположить, что LI верстают сами программисты, т.е. теже люди, которые пишут программную часть и для них является НОРМОЙ прямое написание амперсанда.

До определенной степени это можно допустить, но не в том случае, когда вы приобретаете сайт за 50-60 тыс рублей. Да и потом не нам решать плох или хорош тот или иной протокол World Wide Web Consortium.

В чужой монастырь со своим уставом не ходят!


вверх^ к полной версии понравилось! в evernote
Комментарии (1):
alshneider 16-12-2007-04:27 удалить
Пред вами меркнут чудеса природы И блекнут краски сказочных картин. Мои слова не сделают погоды. Я скромно вам отвечу: “+1” Полное собрание сочинений: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 >> Студия ALTEIN: Продвижение сайтов в Екатеринбурге , раскрутка, поисковая оптимизация сайта Основная цель продвижения сайта - увеличение продаж компании через привлечение на сайт как можно большего числа потенциальных клиентов. Затраты компаний на нового клиента, полученного с помощью продвижения сайта в 5 раз меньше, чем затраты на привлечение клиента через традиционные СМИ! Продвижение сайтов в Екатеринбурге


Комментарии (1): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник DOCTYPE факты и вымысел. | Samimages - Разработка сайтов шаг за шагом | Лента друзей Samimages / Полная версия Добавить в друзья Страницы: раньше»