Какой смысл в DOCTYPE? - PullRequest
       0

Какой смысл в DOCTYPE?

9 голосов
/ 02 июня 2011

Я знаю, что разные типы документов в основном касаются соответствия html, но какая разница, какой тип документа вы указываете?Браузеры обрабатывают один и тот же код по-разному в зависимости от типа документа?Спасибо

ОБНОВЛЕНИЕ - в большинстве ответов упоминается причудливый режим, который можно отключить, если не указан тип документа.Но что будет отличаться между xhtml и html 4.01?

Ответы [ 8 ]

5 голосов
/ 02 июня 2011

Самое большое - иметь тип или нет. Если вы этого не сделаете, браузер будет работать в режиме «причуд», а не в стандартном режиме, и многие вещи будут немного отличаться. Если у вас есть один & mdash; любой & mdash; это обычно активирует более совместимое со стандартами поведение в браузере.

См. в этой статье , чтобы узнать, какие типы документов используются в различных браузерах и какие режимы & mdash; причуды, стандарты, почти стандарты и т. д. & mdash; разные браузеры есть. Цитируем соответствующий раздел:

Режимы для текстового / html-контента

Выбор режима для текстового / html контента зависит от доктифа нюхает (обсуждается позже в этом документе). В IE8 и IE9, режим также зависит от других факторы. Однако по умолчанию даже в IE8 и IE9, режим зависит от doctype для не интранет-сайтов, которые не занесены в черный список Microsoft.

Нельзя подчеркнуть Достаточно того, что точное поведение режимы варьируются от браузера к браузеру хотя обсуждение в этом документ унифицирован.

Причудливый режим

В режиме Причуд браузеры нарушают современный веб спецификации формата для того, чтобы избегать «взлома» созданных страниц в соответствии с практиками, которые были распространены в конце 1990-х годов. Разные браузеры реализуют разные причуды. В Internet Explorer 6, 7, 8 и 9 режим Quirks эффективно заморожен IE 5.5. В других браузерах Причуды режим является горсткой отклонений от Режим Почти Стандарты.

Если вы сейчас создаете новые страницы, Вы должны соблюдать соответствующие спецификации (CSS 2.1 в в частности) и использовать стандарты режим.

Режим стандартов

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

Так как разные браузеры находятся на различные стадии соответствия, Режим стандартов - это не единственная цель, либо.

HTML 5 называет этот режим «без излишеств» режим».

Режим почти стандартов

Firefox, Safari, Chrome, Opera (начиная с 7.5), IE8 и IE9 также есть режим, известный как «Почти Режим стандартов », который реализует вертикальный размер ячеек таблицы традиционно и не строго согласно спецификации CSS2. Mac IE 5, Windows IE 6 и 7, Opera до 7.5 и Konqueror не нужны режим почти стандартов, потому что они не реализуйте вертикальный размер ячейки таблицы строго в соответствии с спецификация CSS2 в их в любом случае соответствующие режимы стандартов. В на самом деле их режимы стандартов ближе в режиме почти стандартов, чем Режим стандартов новых браузеров.

HTML 5 называет этот режим «ограниченным режим причуд ».

Режим IE7

IE8 и IE9 имеют режим, который в основном замороженная копия режима это был режим стандартов в IE7. Другие браузеры не имеют такой режим, как этот, и этот режим не указан по HTML5.

Режим стандартов IE8

IE9 имеет режим, который в основном замороженная копия режима это был режим стандартов в IE8. Другие браузеры не имеют такой режим, как этот, и этот режим не указан по HTML5.

IE8 Режим почти стандартов

IE9 имеет режим, который в основном является замороженной копией режим, который был Почти Стандарты режим в IE8. Другие браузеры не есть такой режим, и этот режим HTML5 не указан.

... но см. Статью для полного обсуждения.

2 голосов
/ 02 июня 2011

Режимы браузера

В прошлом браузеры внедряли CSS по своим собственным правилам.
Только за последние годы браузер адаптировал стандарты W3C.

Чтобы веб-разработчики правильно отображали различные браузеры, веб-разработчикам приходилось внедрять CSS в соответствии с пожеланиями этих браузеров.Таким образом, большинство веб-сайтов использовали CSS способами, которые не совсем соответствовали спецификациям.

Поэтому, когда соответствие стандартам стало важным, поставщики браузеров столкнулись с трудным выбором.Переход к спецификациям W3C - вот путь, но если бы они просто изменили реализации CSS, чтобы они полностью соответствовали стандартам, многие веб-сайты сломались бы в большей или меньшей степени.Существующий CSS начал бы показывать странные побочные эффекты, если бы он внезапно был правильно истолкован.

Таким образом, приближение к соответствию стандартам вызовет проблемы.С другой стороны, недопущение сближения с соблюдением стандартов увековечит общую путаницу эпохи Browser Wars.

Для этого все браузеры должны были начать поддерживать оба режима.Причудливый режим для старых дизайнов и стандартный режим для нового дизайна.

Перефразировано здесь: Причудливый режим и строгий режим

DocTypes

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

Также взято отсюда: Причудливый режим и строгий режим

Дополнительные ресурсы

2 голосов
/ 02 июня 2011

Декларация DOCTYPE должна соответствовать SGML, язык HTML является экземпляром.

Объявление DOCTYPE используется некоторыми браузерами для запуска различных режимов рендеринга .

2 голосов
/ 02 июня 2011

Из Википедия :

Объявление типа документа, или DOCTYPE, - это инструкция, которая связывает определенный документ SGML или XML (например, веб-страницу)с определением типа документа (DTD) (например, формальное определение конкретной версии HTML) .В сериализованной форме документа это проявляется в виде короткой строки разметки, соответствующей определенному синтаксису.

Механизмы компоновки HTML в современных веб-браузерах выполняют DOCTYPE "сниффинг" или "переключение", где DOCTYPE в документе, который используется как text / html, определяет режим макета, такой как «режим причуд» или «режим стандартов» .Сериализация text / html HTML5, которая не основана на SGML, использует DOCTYPE только для выбора режима .Поскольку веб-браузеры реализованы с помощью HTML-анализаторов специального назначения, а не анализаторов DTD общего назначения, они не используют DTD и никогда не получат к ним доступ, даже если указан URL-адрес. DOCTYPE сохраняется в HTML5 как «в основном бесполезный, но обязательный» заголовок только для запуска «стандартного режима» в обычных браузерах .

Я решил процитировать этот текст, потому что онотвечает на ваш вопрос лучше, чем я бы :).Важно, что отсутствие DOCTYPE вызовет «режим причуд» в некоторых браузерах.

2 голосов
/ 02 июня 2011

Объявление не является тегом XHTML; это инструкция для веб-браузера о том, на какой версии языка разметки написана страница.

Декларация относится к определению типа документа (DTD). DTD определяет правила для языка разметки, чтобы браузеры правильно отображали содержимое.

2 голосов
/ 02 июня 2011

Все дело в стандартах, и да, браузеры обрабатывают код по-разному.Это означает, что все браузеры должны отображать страницу одинаково.Если стандарт не указан, браузер интерпретирует страницу так, как он хочет.

1 голос
/ 02 июня 2011

Объявление doctype должно быть первым в HTML-документе перед тегом.

Это не HTML-тег; это инструкция для веб-браузера о том, на какой версии языка разметки написана страница.

С HTML5 все становится проще: <!DOCTYPE html>

Если вы неЕсли у вас нет правильного типа документа, браузер не узнает, как использовать HTML5.

0 голосов
/ 02 июня 2011

Поскольку Doctype является флагом, указывающим, как браузер должен обрабатывать страницу.

Например:

HTML5 нужен этот тип документа <!DOCTYPE html> Если вы удалите его со страницы, любойВозможности HTML5 на вашей странице не будут активированы.

Подробнее читайте в http://www.w3.org/QA/Tips/Doctype

...