在编写HTML5 doctype时,正确的方法是什么?
<!DOCTYPE html>
或
<!doctype html>
答案 0 :(得分:161)
在HTML中,DOCTYPE不区分大小写。以下DOCTYPE均有效:
<!doctype html>
<!DOCTYPE html>
<!DOCTYPE HTML>
<!DoCtYpE hTmL>
在XML序列化(即XHTML)中,不需要DOCTYPE,但如果使用它,则DOCTYPE
应为大写:
<!DOCTYPE html>
请参阅 The XML serialization of HTML5, aka ‘XHTML5’ :
请注意,如果在XHTML文档中没有大写
DOCTYPE
,则XML解析器将返回语法错误。第二部分可以用小写(
html
),大写(HTML
)或甚至是大小写(hTmL
)来编写 - 它仍然有用。但是,为了符合Polyglot Markup Guidelines for HTML-Compatible XHTML Documents,它应该用小写字母书写。
答案 1 :(得分:33)
如果有人在2014年仍在疑惑,请参考:
<强> HTML5 强>
<强> W3 HTML5 Spec - Doctype 强>
DOCTYPE必须按以下顺序组成:
1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".
...
注意:尽管全部显示,但规范声明不敏感
<强> XHTML5 强>
<强> W3 HTML5 - XHTML 强>
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规范中,它在所有大写的示例中显示,但规范明确指出是大小写 - 不敏感)。
多语言标记
能够提供格式良好的XML文档的HTML5文档有时很有价值。
Polyglot标记使用[HTML5]第8.1.1节指定的文档类型声明(DOCTYPE)。此外,DOCTYPE符合以下规则:
* The string DOCTYPE is in uppercase letters.
因此,请注意Ployglot Markup使用常规HTML5文档类型,但添加/更改。对于我们的讨论,最值得注意的是DOCTYPE 以全部大写声明。
<强>求和强>
<强> View the W3's HTML vs. XHTML section 强>
[意见] 除非您特别考虑对其进行考虑,否则我不会过分担心满足XML合规性。对于大多数基于客户端和JS的服务器开发,JSON已经取代了XML。
因此,如果您尝试更新现有的基于xhtml / xml的遗留系统以与新的HTML5功能共存,我只能看到这种情况。如果是这种情况,那么请查看多语言标记规范。
答案 2 :(得分:17)
根据latest spec,您应该使用与<!DOCTYPE html>
不区分大小写的匹配项。因此,虽然浏览器需要支持您喜欢的任何情况,但从中推断<!DOCTYPE html>
是规范案例是合理的。
答案 3 :(得分:7)
HTML5的标准是标签不区分大小写。
http://www.w3schools.com/html5/tag_doctype.asp
更多技术上:(http://www.w3.org/TR/html5/syntax.html)
DOCTYPE必须按以下顺序组成:
<!DOCTYPE
的ASCII不区分大小写匹配。答案 4 :(得分:6)
大写或小写都是“正确”。但是,如果您使用Web字体并关心IE7,我建议使用<!DOCTYPE html>
,因为IE7中的错误,如果使用<!doctype html>
(例如在this answer中),Web字体有时会失败。< / p>
这就是为什么我总是大写doctype。
答案 5 :(得分:2)
这个问题意味着只有一个正确答案,提供两个选择,并要求我们选择一个。我建议对于HTML5,<!DOCTYPE html>
和<!doctype html>
都有效。
因此支持HTML5的浏览器会接受小写的浏览器并正确处理html。
以前浏览器并且忘记了HTML5,即使没有doctype,我也会尝试尽可能地处理HTML。如果他们不认识小写的doctype会做同样的事情。因此,没有必要将其设为大写,因为这些浏览器无论如何都无法完全实现任何HTML5声明。
答案 6 :(得分:0)
不区分大小写,所以
<!doctype html>
<!DOCTYPE html>
<!DOcTYPe htML>
<!doCTypE HTml>
和
<!doctype HTML>
都是有效的。
答案 7 :(得分:-1)
doctype声明不区分大小写,并且任何匹配的ASCII字符串