2008-11-05 3 views
5

Можно создать дубликат:
What are the different doctypes in html and what do they mean?HTML DTD - в чем смысл?

Будучи довольно неопытным с некоторыми аспектами веб-разработки (я всегда сконцентрировался больше на заднем конце, чем спереди), может кто-нибудь дать мне их мысли о том, следует ли мне беспокоиться о декларации DOCTYPE, сделанной в начале веб-страниц?

Является наиболее распространенным HTML 4.01 и должен ли я создавать свои веб-приложения в соответствии с этим стандартом?

ответ

4

John Resig (jQuery) has a say в этом же случае. Кроме того, DocType помогает сделать MSIE6 use the right box model, а также облегчает боль проверки вашего сайта (это хорошая вещь для разработки, подумайте об этом как об отладке).

3

Вы должны обязательно включить DOCTYPE в качестве первого заявления на своих страницах, потому что он переключит веб-браузеры в стандартный режим. Это означает, что они, по крайней мере, попытаются отобразить вашу страницу с использованием стандартов W3C и IETF, а не с помощью обратной модели, известной как режим quirks.

Основываясь на моих собственных наблюдениях, здесь больше пользы XHTML 1.0 Transitiona l вместо HTML 4.01. XHTML 1.0 Transitional - это своего рода наполовину дом, который дает вам некоторые преимущества XHTML, не будучи слишком обременительным.

0

Не считая всех хороших практик, самая большая причина, по которой люди используют DOCTYPE, такие как XHTML 1.0 Transitional, заключается в том, чтобы переключить модель окна CSS в IE так же, как и остальные браузеры. Это обходит много разочарования с помощью CSS-макета. Здесь подробно объясняется: http://css.maxdesign.com.au/listamatic/about-boxmodel.htm

2

DTD используются для проверки и определения сущности. Они примерно определяют требования синтаксиса для определенного языка и версии разметки.

Проверка может быть выполнена с использованием DTD с помощью валидатора. Или это может быть сделано пользовательским агентом во время разбора (как в случае с некоторыми , проверяющими парсером HTML/XML). Объекты, определенные в DTD, могут быть доступны, если пользовательский агент поддерживает это.

Объявление DOCTYPE - это способ языка разметки (по крайней мере, в HTML и XML) для ссылки на встроенный/внешний DTD в документе.

Теперь, что касается анализаторов HTML (text/html) браузера, объявление DOCTYPE просто управляет режимом рендеринга (переключение DOCTYPE). Режим будет стандартами, почти стандартами или Quirks в зависимости от версии HTML, на которую ссылается, и определяет ли URI DTD. Фактический dtd не используется.

Например, переходный тип XHTML 1.0 Transitional с DTD URI может привести браузер только в режим почти всех стандартов, где XHTML 1.0 Strict doctype с DTD URI должен поместить браузер в режим стандартов. Кроме того, HTML-код <! DOCTYPE html > поместит все браузеры в режим стандартов и поместит IE8 + в режим суперстандартов (поэтому при рендеринге он будет немного больше похож на современные браузеры). В общем случае, doctype мало влияет на поддержку Javascript и DOM (есть исключения, особенно в IE8).

Для браузеров, поскольку вы почти всегда нуждаетесь в полном стандартном режиме, все, что вам действительно нужно, это <! DOCTYPE html >. Что-то еще не поможет браузеру. Однако этот тип документа относится к HTML5. Если вы хотите соответствовать DTD HTML 4.01 или DTD XHTML 1.0, вы должны строго придерживаться строгих правил HTML 4.01 или XHTML 1.0 с соответствующими URI DTD, чтобы получить полный режим стандартов.

Если вы хотите соответствовать HTML5, вы можете проверить свой синтаксис на http://validator.nu/. Он не проверяет DTD и более продвинут, чем проверка DTD. Он также отражает HTML 5 лучше, чем DTD, и поскольку HTML5 лучше отражает то, что браузеры действительно поддерживают, его синтаксическая проверка более совместима с браузером.

Если вы хотите соответствовать HTML 4.01 или XHTML 1.0 DTD, используйте валидатор W3C. Просто имейте в виду, что эти DTD не отражают того, что поддерживают браузеры, и только приблизительно отражают спецификации, для которых они предназначены. Эти DTD - это просто больше для поиска грубых синтаксических ошибок и для не-браузерных пользовательских агентов, которые в полной мере используют их. Они также ничего не знают о том, как браузеры ведут себя по-разному между text/html и application/xhtml + xml.

Чтобы прочитать о браузер DOCTYPE переключение:

http://www.mozilla.org/docs/web-developer/quirks/doctypes.html

http://www.opera.com/docs/specs/doctype/

http://hsivonen.iki.fi/doctype/