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