在编写HTML5文档类型时,正确的方法是什么?
<!DOCTYPE html>
或
<!doctype html>
HTML5的标准是标签不区分大小写。
http://www.w3schools.com/html5/tag_doctype.asp
更专业地说:(http://www.w3.org/TR/html5/syntax.html)
DOCTYPE必须由以下组件组成,顺序如下:
<!DOCTYPE
在HTML中,DOCTYPE是不区分大小写的。以下doctype都是有效的:
<!doctype html> <!DOCTYPE html> <!DOCTYPE HTML> <!DoCtYpE hTmL>
在XML序列化(即XHTML)中DOCTYPE不是必需的,但如果你使用它,DOCTYPE应该是大写的:
DOCTYPE
看到< em > < a href = " http://mathiasbynens。be/notes/xhtml5#doctype"> HTML5的XML序列化,又名' xhtml5 ' :
注意,如果在XHTML文档中不将DOCTYPE大写,XML解析器将返回一个语法错误。 第二部分可以用小写(html)、大写(HTML)甚至混合大小写(hTmL)来写——它仍然有效。然而,为了符合兼容html的XHTML文档的多语言标记指南,它应该写成小写。
注意,如果在XHTML文档中不将DOCTYPE大写,XML解析器将返回一个语法错误。
第二部分可以用小写(html)、大写(HTML)甚至混合大小写(hTmL)来写——它仍然有效。然而,为了符合兼容html的XHTML文档的多语言标记指南,它应该写成小写。
html
HTML
hTmL
根据最新的规范,你应该为<!DOCTYPE html>使用不区分大小写的匹配。因此,虽然浏览器需要支持你喜欢的任何大小写,但从中推断<!DOCTYPE html>是规范大小写是合理的。
大写或小写都是“正确的”。然而,如果你使用网页字体并且关心IE7,我建议使用<!DOCTYPE html>,因为IE7中的一个错误,如果使用<!doctype html>,网页字体有时会失败(例如在这个答案中)。
这就是为什么我总是把doctype大写。
如果有人在2014年还在疑惑,请参考这个:
HTML5
W3 HTML5 Spec - Doctype
DOCTYPE必须由以下组件组成,顺序如下: 与字符串“&;<!DOCTYPE"”匹配的ASCII大小写不敏感字符串。 李…< / >
注意:尽管全大写显示,但规范说明它是不敏感。
XHTML5
W3 HTML5 - XHTML
该规范没有定义任何语法级别的需求,超出了为XML定义的需求。 如果需要,XML文档可以包含DOCTYPE,但这不是符合此规范所必需的。该规范没有定义公共标识符或系统标识符,也没有提供正式的DTD。
该规范没有定义任何语法级别的需求,超出了为XML定义的需求。
如果需要,XML文档可以包含DOCTYPE,但这不是符合此规范所必需的。该规范没有定义公共标识符或系统标识符,也没有提供正式的DTD。
查看XML规范,它用大写列出了DOCTYPE,但我找不到任何声明“全大写”是必需的(为了进行比较,在上面列出的HTML5规范中,它在示例中以全大写显示,但规范明确地指出是大小写-不敏感)。
通晓多种语言的标记
W3 Polyglot Markup - Intro
有时,能够同时提供格式良好的XML文档的HTML5文档是很有价值的。
W3 Polyglot Markup - Doctype .
多语言标记使用[HTML5]第8.1.1节指定的文档类型声明(DOCTYPE)。此外,DOCTYPE还遵循以下规则: 字符串DOCTYPE为大写字母。 李…< / >
多语言标记使用[HTML5]第8.1.1节指定的文档类型声明(DOCTYPE)。此外,DOCTYPE还遵循以下规则:
所以,请注意,Polyglot Markup使用了常规的HTML5文档类型,但添加了/更改。对于我们的讨论,最值得注意的是DOCTYPE 全大写。
总结
查看W3的HTML vs. XHTML部分
(意见)我不会太担心满足XML的遵从性,除非你特别想为它考虑。对于大多数客户端和基于js的服务器开发,JSON已经取代了XML。
因此,我认为只有当您试图更新现有的基于XHTML/ xml的遗留系统以与新的HTML5功能共存时,这种方法才真正适用。如果是这种情况,请查看多语言标记规范。
这个问题暗示了只有一个正确答案,提供了两个选择,并要求我们从中选择一个。我建议对于HTML5, <!DOCTYPE html>和<!doctype html>都是有效的。
因此,支持html5的浏览器将接受小写字母并正确处理html。
我听说,之前对HTML5一无所知的浏览器,即使没有doctype,也会尽可能地尝试处理html。如果它们不识别小写doctype,也会做同样的事情。因此,将其大写是没有意义的,因为这些浏览器将无法完全实现任何HTML5声明。
Html5标准