При написании HTML5 doctype какой метод правильный?
<!DOCTYPE html>
или
<!doctype html>
<!doctype html>
При написании HTML5 doctype какой метод правильный?
<!DOCTYPE html>
или
<!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) - все равно будет работать. Однако, чтобы соответствовать Рекомендациям по разметке полиглот для XHTML-документов , совместимых с HTML , его следует писать строчными буквами.
<title/foo/было бы эквивалентно <title>foo</title>. Только несколько валидаторов HTML используют SGML. Спецификация HTML5 - первая, которая проясняет это: whatwg.org/specs/web-apps/current-work/multipage/…
html). Вот полное предложение: «Вторая часть может быть написана в нижнем регистре ( html), верхнем регистре ( HTML) или даже в смешанном регистре ( hTmL) - все равно будет работать. Однако, чтобы соответствовать Рекомендациям по разметке полиглот для XHTML-документов, совместимых с HTML, его следует писать строчными буквами ».
Если кто-то еще интересуется 2014 годом, пожалуйста, обратитесь к этому:
HTML5
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 он отображается в примере со всеми заглавными буквами, но спецификация прямо указывает, что регистр не учитывается ).
Разметка полиглота
W3 Полиглот Разметка - Введение
Иногда полезно иметь возможность обслуживать документы HTML5, которые также являются правильно сформированными документами XML.
В разметке полиглота используется объявление типа документа (DOCTYPE), указанное в разделе 8.1.1 [HTML5]. Кроме того, DOCTYPE соответствует следующим правилам:
* The string DOCTYPE is in uppercase letters.
Итак, обратите внимание, что разметка Ployglot использует обычный тип документа HTML5, но с дополнениями / изменениями. Для нашего обсуждения, наиболее заметно, что DOCTYPE объявлен во всех заглавных буквах .
суммирование
Просмотреть раздел HTML против XHTML в W3
[Мнение] Я бы не стал слишком сильно беспокоиться о соответствии XML-требованиям, если вы не попытаетесь это сделать. Для разработки большинства клиентских и JS-серверов JSON заменил XML.
Поэтому я могу видеть, что это действительно применимо, если вы пытаетесь обновить существующую унаследованную систему на основе xhtml / xml, чтобы сосуществовать с новыми функциями HTML5. Если это так, посмотрите в спецификации разметки полиглота.
Согласно последней спецификации , вы должны использовать что-то, для чего не учитывается регистр <!DOCTYPE html>. Таким образом, хотя браузеры должны поддерживать любой случай, который вы предпочитаете, разумно сделать вывод, что <!DOCTYPE html>это канонический случай.
<!DOCTYPE html>, поэтому было бы разумно сделать вывод, что автор спецификации имеет небольшое предпочтение для этой конкретной капитализации. Я собираюсь использовать ту же заглавную букву, что и в спецификации, поскольку неплохо, чтобы эти вещи были согласованными, но если вы предпочитаете, <!dOcTyPeто будьте моим гостем :)
Верхний или нижний регистр является «правильным». Однако, если вы используете веб-шрифты и заботитесь о IE7, я бы рекомендовал использовать <!DOCTYPE html>из-за ошибки в IE7, когда веб-шрифты иногда не работают при использовании <!doctype html>(например, в этом ответе ).
Вот почему я всегда прописываю прописные буквы.
Стандарт HTML5 заключается в том, что теги нечувствительны к регистру.
http://www.w3schools.com/html5/tag_doctype.asp
Более технически: ( http://www.w3.org/TR/html5/syntax.html )
DOCTYPE должен состоять из следующих компонентов, в следующем порядке:
<!DOCTYPE.tag_doctype.aspнедействительна (404), и этот вопрос касается doctypeобъявления, которое не является тегом ... В любом случае, вывод правильный: в HTML5 ключевое слово doctypeможет быть в верхнем, нижнем или смешанном регистре.
Вопрос вроде подразумевает, что есть только один правильный ответ, предлагает несколько вариантов выбора из двух и просит нас выбрать один. Я бы предположил, что для HTML5 оба <!DOCTYPE html>и <!doctype html>действительны.
Таким образом, браузер с поддержкой HTML5 будет принимать строчный и правильно обрабатывать HTML.
Я слышал, что браузеры, ранее не обращавшие внимания на HTML5, даже без доктайпа будут пытаться обрабатывать html настолько хорошо, насколько это возможно. И если они не распознают строчный, тип документа будет делать то же самое. Поэтому нет смысла делать его заглавным, так как эти браузеры в любом случае не смогут полностью реализовать любые объявления HTML5.
Объявление doctype нечувствительно к регистру, и любая строка ASCII, которая соответствует