大写或小写文档types?

在编写HTML5文档时,什么是正确的方法?

<!DOCTYPE html> 

要么

 <!doctype html> 

在HTML中,DOCTYPE不区分大小写。 以下DOCTYPE全部有效:

 <!doctype html> <!DOCTYPE html> <!DOCTYPE HTML> <!DoCtYpE hTmL> 

在XML序列化(即XHTML)中,DOCTYPE不是必需的,但是如果使用它, DOCTYPE应该是大写的:

 <!DOCTYPE html> 

请参阅HTML5的XML序列化,又名'XHTML5'

请注意,如果您在XHTML文档中不使用大写的DOCTYPE ,则XMLparsing器将返回语法错误。

第二部分可以用小写( html ),大写( HTML )或混合大小写( hTmL ) – 它仍然可以工作。 但是,为了符合适用于HTML兼容XHTML文档的Polyglot标记准则 ,应该使用小写。

如果有人在2014年仍然想知道,请咨询:

HTML5

W3 HTML5规范 – Doctype

DOCTYPE必须按以下顺序组成:

 1. A string that is an ASCII case-insensitive match for the string "<!DOCTYPE". ... 

注意:尽pipe显示全部大写,规范说明它是不敏感的

————————————————– ——————–

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规范中,它在所有大写中都显示在示例中,但是该规范明确指出这是不区分大小写的 )。

————————————————– ——————–

多语言标记

W3 Polyglot标记 – 介绍

能够提供格式良好的XML文档的HTML5文档有时也很有价值。

W3多语言标记 – Doctype

多语言标记使用由[HTML5]的第8.1.1节指定的文档types声明(DOCTYPE)。 另外,DOCTYPE符合以下规则:

 * The string DOCTYPE is in uppercase letters. 

所以,请注意,Ployglot标记使用常规的HTML5文档types,但添加/更改。 对于我们的讨论,最值得注意的是DOCTYPE 是全部大写的

————————————————– ——————–

合计

查看W3的HTML和XHTML部分

[意见]除非你特别想要考虑它,否则我不会太担心满足XML合规性。 对于大多数客户端和基于JS的服务器开发,JSON已经取代了XML。

因此,如果您尝试更新现有的基于xhtml / xml的遗留系统以与新的HTML5function共存,那么我只能看到这一点。 如果是这种情况,请查看多边形标记规范。

根据最新的规范 ,你应该使用<!DOCTYPE html>不区分大小写的匹配项。 因此,虽然浏览器需要支持你喜欢的任何情况,但从这里推断出<!DOCTYPE html>是规范的情况是合理的。

大写或小写都是“正确的”。 但是,如果您使用networking字体并关心IE7,我build议使用<!DOCTYPE html>因为在IE7中,如果使用<!doctype html> (例如在此答案中 ),Web字体有时会失败。

这就是为什么我总是大写的文档types。

HTML5的标准是标签不区分大小写。

http://www.w3schools.com/html5/tag_doctype.asp

更技术性地说:( http://www.w3.org/TR/html5/syntax.html

DOCTYPE必须按以下顺序组成:

  1. 与string<!DOCTYPE匹配的ASCIIstring不区分大小写的string。

这个问题意味着只有一个正确的答案,提供了两个select,并要求我们select一个。 我build议对于HTML5, <!DOCTYPE html><!doctype html>都是有效的。

所以一个支持HTML5的浏览器会接受小写字母并正确处理html。

以前浏览器并没有注意到HTML5,我听说,即使没有文档types,也会尝试尽可能地处理html。 如果他们不承认小写的doctype会做同样的事情。 因此,将其设置为大写是没有意义的,因为无论如何,这些浏览器将无法完全实现任何HTML5声明。