<hgroup>仅在概述算法(HTML5)</hgroup>中呈现其中一个元素

时间:2012-01-05 11:07:10

标签: html5 outlining

我是HTML5的新手,我阅读了概述概念,我明白了。我尝试了部分代码 this网站(概述我的代码):

<!DOCTYPE html>
<article>
  <hgroup>
    <h1>H1</h1>
    <h2>H2</h2>
    <h3>H3</h3>
  </hgroup>
</article>

但我得到的结果令我感到困惑。我得到以下结果:

1.Untitled Section
    1.H1

我知道我在输出中得到1.Untitled Section的原因,但我的这部分代码在哪里消失了

<h2>H2</h2>
<h3>H3</h3>

我在输出中看不到H2H3。它是什么原因?用一个例子来解释。

提前致谢。

3 个答案:

答案 0 :(得分:2)

hgroup仅包含大纲中的(第一个)最高级别标题。

来自http://dev.w3.org/html5/spec/the-hgroup-element.html

  

出于文档摘要,大纲等的目的,hgroup元素的文本被定义为hgroup元素的排名最高的h1-h6元素后代的文本,如果有任何这样的元素,则第一个这样的元素,如果有多个具有该等级的元素。如果没有这样的元素,那么hgroup元素的文本就是空字符串。

使用hgroup的目的是实际掩盖大纲中的后续标题。所以你看到的行为就是元素存在的原因。

答案 1 :(得分:2)

前几天我正在阅读一本HTML5书籍,如果我没记错的话,HTML5组元素只会为第一个标题(边界框)创建一个大纲。

编辑:正如保罗在评论中指出的那样,这里解释得非常好:

http://diveintohtml5.info/semantics.html#header-element

答案 2 :(得分:1)

h1 h2 h3用于在HTML4.0和早期版本中创建部分。从HTML 5来看并非如此。它现在更好地标记部分,文章,导航等部分.H1,h2,h3的含义现在只是这些标记内的标题和子标题。创建hgroup是为了过滤掉使用h2,h3等创建的子标题和标语,从而污染大纲。所以你所看到的是有意的。如果你删除hgroup,你会看到所有这些。