什么是有效的HTML5文档?

d13*_*d13 28 html html5 html-validation

我刚刚阅读了HTML5作者规范.它声明<html>,<head><body>标签是可选的.这是否意味着您可以将它们完全保留并且仍然具有有效的HTML5文档?

如果我正确地解释这个,这意味着这应该是完全有效的:

<!DOCTYPE html>
<p>Hello!</p>
Run Code Online (Sandbox Code Playgroud)

它是否正确?

你可以在这里查看规范:

http://dev.w3.org/html5/spec-author-view/syntax.html#syntax

"8.1.2.4可选标签"是可以省略的<html>,<head>并且<body>

Smi*_*Smi 30

title确实需要这个元素,但正如Jukka Korpela所说,它也必须是非空的.此外,title元素的内容模型是:

不是元素间空格的文本.

因此,在title元素中只有一个空格字符不被视为有效的HTML.您可以在W3C验证器中进行检查.

因此,最小且有效的HTML5文档的示例如下:

<!doctype html><title>a</title>
Run Code Online (Sandbox Code Playgroud)


Sou*_*sou 21

这是最小的HTML5有效文档:

<!doctype html><title> </title>
Run Code Online (Sandbox Code Playgroud)

  • 它已不再有效,因为现在HTML5草稿要求`title`元素具有非空内容.任何角色(甚至空间)都会有.(也许,他们会再次改变规则.) (6认同)
  • 根据[Validator.nu](https://html5.validator.nu/)和[W3C验证器](https://validator.w3.org/#validate_by_input),带有空格的`<title>`标签是被认为是空的.里面必须有一些非太空的角色. (5认同)
  • 根据 [MDN](https://developer.mozilla.org/en/docs/Web/HTML/Element/head) 甚至标题标签也可以省略“如果元素是`&lt;iframe&gt;` srcdoc,或者如果标题信息可从更高级别的协议中获得”。所以最小的 HTML5 有效文档是上下文相关的。(我听说它声称“标题信息可从更高级别的协议中获得”涵盖电子邮件。) (2认同)

sid*_*ker 9

这里是W3C HTML验证器维护者.关于验证器行为的FYI,截至今天,验证器现在在HTML规范中强制要求该title元素必须包含至少一个非空白字符 -

http://validator.w3.org/nu/?doc=data%3Atext%2Fhtml%3Bcharset%3Dutf-8%2C%3C%2521doctype%2520html%3E%3Ctitle%3E%2520%2520%2520%3C%252Ftitle %3E

  • 规范确实有这样的要求吗?我看到“内容模型:不是元素间空白的文本”。但元素间空白被定义为某些形式的文本节点。`&lt;title&gt;&lt;/title&gt;` 没有文本节点子节点,因此它没有元素间空白。另一方面,文本被定义为“无”或“文本节点”。“没有”匹配,因此严格的阅读表明内容模型是令人满意的。毫无疑问,这不是定义的“意图”,但也许那里存在规范缺陷。 (2认同)

Alo*_*hci 7

虽然<html>,<head>以及<body>开始和结束标签是可选的,但<title>标签是必需的,除非在特殊情况下,所以不,您的样品不是(通常)有效.