Что такое DOCTYPE?

  • Что такое DOCTYPE и почему я хочу его использовать?
  • Каковы различные DOCTYPE, которые я могу использовать?
  • В чем разница между стандартами и режимом quirks, и каковы некоторые причуды, с которыми я могу столкнуться с разными установленными DOCTYPE?

Наконец, что такое надлежащий DOCTYPE, который я должен использовать?

Ответ 1

В принципе, DOCTYPE описывает HTML-код, который будет использоваться на вашей странице.

Браузеры также используют DOCTYPE для определения способа отображения страницы. Не включая DOCTYPE или включение некорректного DOCTYPE может вызвать режим quirks. Кикер здесь заключается в том, что режим quirks в Internet Explorer сильно отличается от режима quirks в Firefox (и других браузерах), а это означает, что у вас будет гораздо сложнее работать, чтобы ваша страница работала последовательно во всех браузерах, если страницы отображаются в причудах чем вы, если они отображаются в стандартном режиме.

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

Существуют тонкие различия между различными типами доктринов "стандартная реклама", такими как doctype HTML5 (<!DOCTYPE html>, до того, как HTML5 известен только как "тощий doctype", который не запускает стандартизованный рендеринг в старых браузерах) и других DOCTYPE, таких как как этот для HTML 4.01 переходный:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Ответ 2

DOCTYPE сообщает пользовательскому агенту потребления (веб-браузерам, веб-сканерам, средствам проверки), какой тип документа является файлом. Использование этого метода гарантирует, что потребитель правильно анализирует HTML, как вы его предполагали.

Существует несколько разных DOCTYPES для HTML, XHTML и Framesets, и каждый из них имеет два режима: Strict и Transitional. Строгий говорит, что ваша разметка точно использует определенные стандарты. Подробнее см. страницу W3C DTD.

Quirksmode - это в основном метод компоновки из дней браузера, когда стандарты были гораздо менее уважаемы и определены. Как правило, страница режима стандартов, которая является действительной, будет более последовательно размещаться в разных браузерах, но может не иметь определенных функций, которые вам нужны. Одной из таких функций является целевой атрибут метки привязки. Quirksmode - отличный ресурс для этих различий.

Последняя мысль состоит в том, что новый стандарт HTML5 предлагает использовать очень простой DOCTYPE:

<!DOCTYPE html>

Использование этого DOCTYPE - это совместимый с переходом способ указать, что ваши страницы находятся в стандартном режиме и являются HTML. Это метод, который использует Google, и его легко запомнить. Я рекомендую использовать этот DOCTYPE, если вы не планируете использовать XHTML.

Ответ 3

Тип doctype определяет, какую версию HTML/XHTML использует ваш документ. Вы бы хотели использовать doctype, чтобы при запуске вашего кода через валидаторы валидаторы знали, какую версию HTML/XHTML проверять. Эта страница дает хороший обзор:

Не забудьте добавить doctype

Ниже перечислены общие доктрины:

Рекомендуемый список DTD

Какой тип doctype вам следует использовать, зависит от кода, который вы используете, но чтобы получить представление, попробуйте запустить свой код через валидатор W3C и используйте раскрывающееся меню Тип документа в Меню "Дополнительные параметры", чтобы попробовать разные доктрины.

Служба валидации разметки W3C

Ответ 4

В HTML (включая XHTML), который используется на веб-страницах, DOCTYPE - это строка, которая запускает один из нескольких режимов браузера (режим quirks, режим стандартов, почти стандартный режим), в зависимости от точного написания DOCTYPE. Вы хотите использовать его для выбора режима браузера, который наилучшим образом соответствует вашей странице.

Формально в SGML и XML объявление DOCTYPE является ссылкой на определение типа документа (DTD), которое определяет формальные правила синтаксиса языка разметки. Ни один браузер никогда не использовал DTD для чего-либо или даже не обращался к ним. Однако они используются валидаторами разметки SGML и XML, такими как W3C Markup Validator, за исключением режима HTML5. Поэтому выбор DOCTYPE определяет, как работает валидатор, если документ будет отправлен на него. Однако режим работы валидатора также может быть выбран в его пользовательском интерфейсе. (SGML и XML-процессоры могут использовать DOCTYPE и другими способами, но этот вопрос, по-видимому, должен ограничиваться контекстом HTML и веб-браузерами и тесно связанными с ними программными средствами.)

Нет авторитетного списка DOCTYPE. Каждая спецификация или проект HTML определяет собственный DOCTYPE или DOCTYPE. Набор DOCTYPE, распознаваемый браузерами при выборе режима, зависит от браузера. На практике нет оснований использовать DOCTYPE, кроме <DOCTYPE html> как определено в HTML5, хотя HTML5 также перечисляет несколько "устаревших DOCTYPE", Вы можете использовать этот DOCTYPE, если вы хотите режим стандартов (рекомендуется для новых страниц), и не используйте DOCTYPE, если вы хотите режим quirks (который может понадобиться для устаревших страниц).

"Режим стандартов" обычно означает режим работы, когда браузер следует за HTML, CSS, DOM и другими спецификациями, насколько это возможно. Обычно это не означает полное соответствие. "Режим Quirks" отличается в разных браузерах, но в целом это означает попытку имитировать поведение очень старых браузеров, таких как IE 5. Целью является сохранение старых страниц в предположении, что они могут полагаться на функции и ошибки в старых браузеров. См. Описание Что происходит в режиме Quirks? Обратите внимание, что в HTML5 существует довольно другая, более ограниченная концепция режима "quirks", которая очень напоминает документ под названием Режим жизни Quirks Mode.

Типичная проблема заключается в том, что ширина элементов вычисляется по-разному в режиме quirks и в стандартном режиме. Это означает, что макет страницы может быть более или менее изменен или даже полностью испорчен, если страница, предназначенная для работы в режиме quirks, просматривается в режиме стандартов (или наоборот).

Итак, вы должны использовать <!DOCTYPE html> для новых страниц и сохранить все, что DOCTYPE (если есть), которые вы использовали для старых страниц.

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

Ответ 5

Doctypes сообщают браузеру, на каком языке написана страница, будь то HTML или XHTML. Например,

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

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

Сегодня вы должны использовать как минимум HTML4 или лучше XHTML.

В блоге о доктринах есть Исправьте свой сайт с правильным DOCTYPE! (от A List Apart).

Ответ 6

Прежде всего, нет ни одного документа, который вы должны использовать, но большинство дизайнеров пытаются заставить его работать в XHTML 1.0 Strict.

Документ - это не что иное, как объявление о том, какие теги вы можете использовать в своем html (хотя браузеры могут использовать больше или меньше того, что определено). Фактически вы можете открыть файл doctype и начать чтение (XHTML 1.0 Strict)

Если вы не укажете doctype, браузер попытается изо всех сил угадать, но не всегда попадает в правильный тип.

Режим Quirks - это просто метод, используемый браузерами для обратной совместимости, отличный пример режима quirks: IE отображает блоки

Ответ 7

В Интернете, doctype не делает ничего, кроме как сказать brower, если вы хотите стандарты, почти стандарты или режим quirks.

Какие изменения в режиме quirks зависят от браузера: Firefox, Opera, Safari и Chrome реализуют ограниченный набор причуд, например, удаление пространства для дескрипторов текста в коде, например <table><tr><td><img></td></tr></table> (решение: td img { vertical-align:bottom; }). IE, с другой стороны, возвращается к движку рендеринга в IE5.5. Это означает, что вы не сможете использовать какие-либо новые функции, реализованные с 2000 года.

Чтобы запустить режим стандартов, я предлагаю использовать doctype HTML5 <doctype html>, так как это легче всего запомнить.

Ответ 8

Документ - это документ, описывающий, как может выглядеть содержимое документа, подобного xhtml (например, веб-страницы). Примечание: это определяет только синтаксис указанной страницы, рендеринг страницы НЕ определен DTD!

Например, doctype может определить, как может выглядеть <table> -tag - какие атрибуты он принимает, а какие значения /valuetypes принимаются для каждого атрибута. Подумайте об этом как лексике для вашей текущей веб-страницы.

Wikipedia содержит информативную страницу о различных Doctypes, которые широко используются. Имейте в виду - нет ничего, что помешает вам создать свой собственный doctype. Однако есть вероятность, что браузер, вероятно, не знает, как сделать ваш документ.

Какой DTD использовать, зависит от того, что вы собираетесь писать. Например, XHTML имеет целый DTD, отличный от HTML.