При написании документа типа HTML5, что является правильным методом?
<!DOCTYPE html>
или
<!DOCTYPE html>
При написании документа типа 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>
- это канонический случай.
Стандартом для HTML5 является то, что теги нечувствительны к регистру.
http://www.w3schools.com/html5/tag_doctype.asp
Более технически: (http://www.w3.org/TR/html5/syntax.html)
A DOCTYPE должен состоять из следующих компонентов в следующем порядке:
<!DOCTYPE
.Либо верхний, либо нижний регистр является "правильным". Однако, если вы используете веб-шрифты и заботитесь об IE7, я бы рекомендовал использовать <!DOCTYPE html>
из-за ошибки в IE7, где веб-шрифты иногда терпят неудачу, если использовать <!DOCTYPE html>
(например, в этот ответ).
Вот почему я всегда занимаю верхний регистр doctype.
Вопрос типа подразумевает наличие только одного правильного ответа, предоставляет множественный выбор из двух и просит нас выбрать один. Я бы предположил, что для HTML5 действуют как <!DOCTYPE html>
, так и <!DOCTYPE html>
.
Таким образом, браузер с поддержкой HTML5 будет принимать нижний регистр и правильно обрабатывать html.
Браузеры, ранее и не обращая внимания на HTML5, я слышал, даже без doctype, будет пытаться обрабатывать html как можно лучше. И если они не признают, что нижний регистр doctype будет делать то же самое. Поэтому нет смысла делать это заглавными, так как эти браузеры не смогут полностью реализовать любые объявления HTML5.
Объявление doctype нечувствительно к регистру, и любая строка ASCII, которая соответствует