【问题标题】:Bare minimum HTML5 - is it valid?最低限度的 HTML5 - 它有效吗?
【发布时间】:2015-04-06 06:30:00
【问题描述】:

我正在阅读 D3,其中一张幻灯片提到了 Paul Irish 的 most minimal HTML page

<!DOCTYPE html>
<meta charset="utf-8">
<body>
Hello, world!

我完全理解这个 HTML 的作用——但是,这到底是如何成为有效的 HTML5 的,此外,它是否符合标准?或者这只是它有效,但它违反了规则

【问题讨论】:

  • w3 validator 表示:错误第 3 行,第 6 列:元素头缺少子元素标题的必需实例。
  • @Paolo 在哪种模式下使用符合标准的验证器?
  • 默认设置,我猜是HTML5验证。
  • 对于标记为“主要基于意见”的人,请重新阅读我的问题并查看关闭原因。
  • 相关(使用完全相同的示例):Is this minimalist HTML5 markup valid?

标签: html


【解决方案1】:

HTML5 spec 描述了在 text/html 中的标记省略 下可以省略哪些标记。但是,spec states

非规范描述是否在 text/html 语法中, 开始和结束标签可以省略。这些信息是多余的 可选标签部分中给出的规范要求,并且是 在元素定义中提供只是为了方便。

由于它是非规范性的,我们不能依赖它来进行一致性检查。在规范的optional tags 部分中,它列出了:

如果里面的第一件事,一个html元素的开始标签可能会被省略 html 元素不是注释。

如果 html 元素不是,则可以省略 html 元素的结束标记 紧接着是评论。

如果元素为空,则可以省略头部元素的开始标记,或者 如果 head 元素中的第一件事是一个元素。

如果头元素不是头元素,则可以省略头元素的结束标记 紧跟一个空格字符或注释。

如果元素为空,则可以省略 body 元素的开始标记,或者 如果 body 元素中的第一件事不是空格字符或 注释,除非 body 元素中的第一件事是 元、链接、脚本、样式或模板元素。

如果body元素不是,则可以省略body元素的结束标签 紧接着是评论。

因此,除了缺少的&lt;title&gt; 之外,该文档似乎是有效的,这可能是w3 validator 抱怨的原因。还有进一步的迹象表明需要&lt;title&gt;。首先,规范的&lt;head&gt;内容模型部分指出:

如果文档是 iframe srcdoc 文档或标题信息 可从更高级别的协议中获得:零个或多个元素 元数据内容,其中不超过一个是标题元素,不超过一个 一个以上是基本元素。

否则:元数据内容的一个或多个元素,其中 一个是标题元素,最多一个是基本元素。

还有spec states

对哪些内容必须包含在子项中的规范性描述 和元素的后代。

【讨论】:

    猜你喜欢
    • 2014-11-05
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 2014-05-20
    相关资源
    最近更新 更多