При написании документа типа HTML5, что является правильным методом?
<!DOCTYPE html>
или
<!DOCTYPE html>
В HTML DOCTYPE нечувствителен к регистру. Действуют следующие DOCTYPE:
<!doctype html>
<!DOCTYPE html>
<!DOCTYPE HTML>
<!DoCtYpE hTmL>
В XML-сериализации (т.е. XHTML) DOCTYPE не требуется, но если вы его используете, DOCTYPE
должен быть прописным:
<!DOCTYPE html>
См. Сериализация XML HTML5, ака 'XHTML5:
Обратите внимание, что если вы не загладите
DOCTYPE
в документе XHTML, синтаксический анализатор XML вернет синтаксическую ошибку.Вторая часть может быть записана в нижнем регистре (
html
), в верхнем регистре (html
) или даже в смешанном случае (html
) - она все равно будет работать. Однако, чтобы соответствовать Правилам разметки Polyglot для совместимых с HTML XHTML-документами, это должно быть написано в нижнем регистре.
Если кому-то все еще интересно в 2014 году, проконсультируйтесь с этим:
HTML5
A DOCTYPE должен состоять из следующих компонентов в следующем порядке:
1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...
Примечание: несмотря на то, что он отображается во всех кешках, спецификация утверждает, что он нечувствителен
XHTML5
This specification does not define any syntax-level requirements
beyond those defined for XML proper.
XML documents may contain a DOCTYPE if desired, but this is not required
to conform to this specification. This specification does not define
a public or system identifier, nor provide a formal DTD.
Рассматривая спецификацию XML, он перечисляет DOCTYPE в шапках, но я не могу найти ничего, что бы заявляло, что требуется "все колпачки" (для сравнения в спецификации HTML5, указанной выше, она отображается в примере во всех cap, но спецификация явно заявляет, что это case- нечувствительный).
Разметка Polyglot
Иногда полезно иметь возможность обслуживать документы HTML5, которые также являются хорошо сформированными XML-документами.
Разметка Polyglot использует объявление типа документа (DOCTYPE), указанное в разделе 8.1.1 [HTML5]. Кроме того, DOCTYPE соответствует следующим правилам:
* The string DOCTYPE is in uppercase letters.
Итак, обратите внимание, что Ployglot Markup использует обычный тип HTML5, но с дополнениями/изменениями. Для нашего обсуждения, прежде всего, DOCTYPE объявляется во всех шапках.
Суммирование
Просмотрите раздел W3 HTML и XHTML
[Мнение] Я бы не стал слишком беспокоиться о соблюдении требований XML, если вы специально не пытаетесь сделать для этого соображения. Для большинства клиентских и JS-серверов JSON заменил XML.
Поэтому я могу увидеть, что это действительно применяется, если вы пытаетесь обновить существующую устаревшую систему на основе xhtml/xml, чтобы сосуществовать с новыми функциями HTML5. Если это так, рассмотрите спецификацию разметки polyglot.
В соответствии с последней спецификацией вы должны использовать что-то, что не учитывает регистр, для <!DOCTYPE html>
. Поэтому, когда браузеры должны поддерживать любой случай, который вы предпочитаете, разумно сделать вывод, что <!DOCTYPE html>
- это канонический случай.
Либо верхний, либо нижний регистр является "правильным". Однако, если вы используете веб-шрифты и заботитесь об IE7, я бы рекомендовал использовать <!DOCTYPE html>
из-за ошибки в IE7, где веб-шрифты иногда терпят неудачу, если использовать <!DOCTYPE html>
(например, в этот ответ).
Вот почему я всегда занимаю верхний регистр doctype.
Стандартом для HTML5 является то, что теги нечувствительны к регистру.
http://www.w3schools.com/html5/tag_doctype.asp
Более технически: (http://www.w3.org/TR/html5/syntax.html)
A DOCTYPE должен состоять из следующих компонентов в следующем порядке:
<!DOCTYPE
.Вопрос типа подразумевает наличие только одного правильного ответа, предоставляет множественный выбор из двух и просит нас выбрать один. Я бы предположил, что для HTML5 действуют как <!DOCTYPE html>
, так и <!DOCTYPE html>
.
Таким образом, браузер с поддержкой HTML5 будет принимать нижний регистр и правильно обрабатывать html.
Браузеры, ранее и не обращая внимания на HTML5, я слышал, даже без doctype, будет пытаться обрабатывать html как можно лучше. И если они не признают, что нижний регистр doctype будет делать то же самое. Поэтому нет смысла делать это заглавными, так как эти браузеры не смогут полностью реализовать любые объявления HTML5.