Jump to content
  • 0

О выборе !DOCTYPE


ins
 Share

Question

Собственно, какой тип докуменат выставлять?

Мне, как начинающему, хотелось бы прояснить отличие. Где почитать чем они отличаются и чет отличаются строгие и переходные Доктайпы для html и xhtml

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

Эта тема будет вечной :)

В теории (в сухом остатке), HTML 4.01 Strict - для HTML-страниц с чистой логической разметкой, все оформительские вещи (цвет-размер и пр.) выносятся в CSS, а действия - в скрипты (даже target=_blank у ссылок нужно заменять скриптом!). HTML 4.01 Transitional - в принципе то же самое, но немножко пожертвовать стройностью кода ради красоты/удобства допускается, поэтому разрешены некоторые устаревшие теги и атрибуты (<font>, тот же target и т.п.). HTML 4.01 Frameset - только для наборов фреймов.

XHTML 1.0 Strict, Transitional и Frameset - по сути все то же самое, но переписанное в более строгом XML-синтаксисе. Если сервер будет отдавать их как HTML, разницы с соответствующим HTML (при соблюдении правил совместимости, описанных в спецификации) не будет никакой. Если отдавать как XML - браузеры будут их по-другому парсить (в теории - чуть быстрее, хотя пользователь разницы не почувствует), по-другому строить объектную модель страницы для скриптов, а при ошибке синтаксиса XML - вместо страницы покажут желтый экран с сообщением об ошибке. IE всех версий умеет парсить их только как HTML.

XHTML 1.1 - в первом приближении то же самое, что XHTML 1.0 Strict (за вычетом несущественных на практике мелочей).

Но это в теории. На практике же браузеры смотрят на доктайп лишь с одной целью - выбрать режим отображения страницы. Это отдельная большая тема, про это можно почитать, к примеру, здесь. Если совсем грубо, браузерам важнее наличие доктайпа, чем его конкретный вид - доктайпы <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">, <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> и <!doctype html> (HTML5) во всех современных браузерах дают один и тот же эффект.

Так что доктайп, по большому счету, важен лишь для валидатора. Но крайне желательно, чтобы вся страница заявленному доктайпу соответствовала, т.е. не только разметка проходила валидацию, но и стили были написаны в правильном регистре (особенно для XHTML) и т.д.. В случае XHTML простейший способ проверить это - сохранить файл с расширением .xhtml и открыть с диска Firefox-ом или Оперой, она должна выглядеть и работать так же, как и с расширением .html.

Vindex10,

потому что строгий
Это да.
более оптимизирован под браузеры
Это как посмотреть.
а в чреьд есьт теги <tag />
С точки зрения браузеров, при отдаче как HTML (т.е. в 99% случаев) их нет :(. И если <br /> понимается и действует как обычный <br>, то вот <a name="oops" /> превращается в незакрытый строчный тег. Так что я бы все же советовал переходить к XHTML осторожно и вдумчиво, с четким пониманием, чем он отличается от HTML и как применять его универсально. Edited by SelenIT
Link to comment
Share on other sites

  • 0
зато <img /> есть! мне по душе этот, имхо удобней, читабельней, и упорядоченей)))

<img /> более удобен чем <img>?

Наличием лишнего символа? Или тем, что выглядит более модно? Или тем, что при парсинге HTML этот символ не нужен, а документы парсятся именно как HTML?

На сегодняшний день в условиях реального веба XHTML воспринимаю больше как сферический язык разметки в вакууме.

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

Transitional doctype мне не нравится тем, что он переводит браузеры в quirks mode. Предназначен, конечно, он для другого - для документов со смешанной разметкой и оформлением - но такой побочный эффект часто не подходит.

Link to comment
Share on other sites

  • 0
Transitional doctype мне не нравится тем, что он переводит браузеры в quirks mode.

Там все несколько сложнее. Quirks получается для сокращенного варианта (без ссылки на DTD), а со ссылкой (причем как для HTML 4.01 Trans., так и для XHTML 1.0 Trans.) получается промежуточный, "полустандартный" режим - боксовая модель, ошибочный CSS и т.п. обрабатываются как в строгом режиме, но картинки в ячейках таблиц ведут себя как блочные, а не как строчные, элементы (как при Quirks mode). С какой-то точки зрения это даже кроссбраузернее, чем полный Strict, потому что "полустандартный" режим ближе к "строгому режиму" IE<7, чем полностью стандартный... но помнить о такой разнице в действии двух вариантов вроде бы одного и того же доктайпа приходится.

Ну и, конечно, давняя бага IE6 - Quirks mode для любого XHTML-доктайпа с <?xml>-прологом перед ним. Но это уже третья история :)

Link to comment
Share on other sites

  • 0

Да, вы правы, невнимательно посмотрел в списке, а сам почти не пользуюсь этим доктайпом - конечно же без пути к DTD переводится в quirks. А пример был приведен со ссылкой. Но ведь "полустандартный" режим есть не у каждого браузера. Opera, если не ошибаюсь, все-таки перейдет в Quirks вместо almost standard mode при DTD без пути.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy