我正在读D3,其中一张幻灯片提到了Paul Irish的most minimal HTML page。
<!DOCTYPE html>
<meta charset="utf-8">
<body>
Hello, world!
我完全理解这个HTML的作用 - 然而,世界上这个HTML5是如何有效的,而且,它是否符合标准?或者这只是它的工作情况,但它会使规则?
答案 0 :(得分:4)
HTML5 spec描述了 text / html中的标记省略下可以省略的标记。但是,spec states:
非规范描述是否在text / html语法中 开始和结束标签可以省略。这些信息是多余的 可选标签部分给出的规范要求,是 元素定义中提供的只是为了方便。
由于它是非规范性的,我们不能依赖它来进行一致性检查。在规范optional tags部分中,它列出了:
如果内部的第一件事,可以省略html元素的开始标记 html元素不是评论。
如果html元素不是,则可以省略html元素的结束标记 紧接着发表评论。
如果元素为空,则可以省略头元素的开始标记 如果head元素中的第一个元素是元素。
如果头元件不是,则可以省略头元件的结束标签 紧接着是空格字符或评论。
如果元素为空,则可以省略body元素的开始标记 如果body元素中的第一个东西不是空格字符或 注释,除非body元素中的第一个东西是a 元,链接,脚本,样式或模板元素。
如果身体元素不是,则可以省略身体元素的结束标记 紧接着发表评论。
所以看起来文档是有效的,除了缺少<title>
,这可能是w3 validator抱怨的原因。还有迹象表明需要<title>
。首先,<head>
的内容模型部分是规范性的,声明:
如果文档是iframe srcdoc文档或标题信息 可从更高级别的协议获得:零个或多个元素 元数据内容,其中不超过一个是title元素而不是 不止一个是基本元素。
否则:元数据内容的一个或多个元素,其中确切地说 一个是标题元素,不超过一个是基本元素。
对儿童必须包含哪些内容的规范性描述 和元素的后代。