HTML5文档是否需要Doctype?


12

最近,我接受了工作面试,其中一个问题是“ HTML 5文档是否需要doctype?”。我回答“否”,但有种感觉,我可能错了。从w3看来,这绝对是必需的,但是如果我输入一个简单的HTML

<html>
    <body>
        <input type="color" disabled/>
    </body>
</html>

将其另存为HTML并尝试在Chrome中打开-使用新的颜色输入(已禁用),它将可以很好地工作。该输入是HTML5以及属性。

所以问题是-是否需要指定doctype?面试的正确答案是什么?


1
我猜您可能会争辩说,没有该Doctype元素就不是HTML5文档。
MetaFight 2015年

您可以输入hello world文本编辑器,将其另存为HTML,然后它将在Chrome中呈现。事实证明,即使“必需”,Chrome(和许多其他浏览器)也可以为您添加内容。
intcreator

Answers:


14

正确答案是“取决于”。

对于XHTML语法中的HTML5文档(即XHTML5文档),DOCTYPE是可选的:

XML文档可以根据需要包含DOCTYPE,但这不是符合本规范所必需的。

HTML格式的 HTML5文档需要DOCTYPE :

文档必须按给定顺序包含以下部分:

[…]

3. DOCTYPE。

例外情况


1
如果“需要”被解释为“规范要求”,则这是完整的答案。它也可以解释为是指实际效果。在那种情况下,答案将是HTML语法中需要一个doctype字符串,以将浏览器置于“标准模式”。
Jukka K. Korpela

如果您详细说明文档何时是html vs xhtml,我希望这个答案更好。这对浏览器意味着什么-他们如何决定使用哪种语法进行评估?
临时用户

7

我也将回答“否”(错误地发生)。

但是,http : //www.w3.org/TR/html5/syntax.html#the-doctype说:

8.1.1 DOCTYPE

DOCTYPE是必需的前导。

由于遗留原因,DOCTYPE是必需的。省略时,浏览器倾向于使用与某些规范不兼容的其他呈现模式。在文档中包含DOCTYPE可确保浏览器尽最大努力遵循相关规范。

BTW,GIYF


1
引用的部分仅适用于HTML语法。
Jukka K. Korpela

问题标题是“ HTML5文档是否需要Doctype”(QED)。
Mawg说恢复Monica 2015年

1
HTML5规范清楚且引人注目地指出,它为HTML5定义了两种语法,一种基于原始HTML,另一种完全符合XML。您引用的内容无法回答问题,因为它仅适用于一种语法。
Jukka K. Korpela

啊! 终于我明白了。非常感谢您的澄清。
Mawg说恢复Monica 2015年

2

当您要编写符合w3c标准的HTML5文档时,则<!DOCTYPE html>是必需的。

但是实际上,您并不总是需要doctype,因为任何普通的Web浏览器都会呈现您的文档。但是,某些浏览器随后将使用传统模式,在该模式下,某些功能无法正确解释,而是以浏览器的早期版本对其进行处理的方式(其中大多数与布局有关)。

这次采访哪个答案合适?那取决于面试者的心态。在工作面试中,对与错都不重要。只关系到您对面试官的印象是什么。


对我来说有趣的问题是,2020年实际需要DOCTYPE HTML5吗?如果我忽略了当前的浏览器(FF,Chrome,Edge)却使代码与HTML-5兼容,该怎么办?
Panu Logic
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.