51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

解析HTML5中hgroup元素

d4628535e5dde7112364a3daa6efce1b9d16616c.jpg

记得当初刚做了一套腾讯互娱乐部门的笔试题,针对LOGO,我用了hgroup这个标签,然后他们主管对我说,你连基本元素的用法都不知道。唉,现在想想觉得好可悲,今天晚上就想说说关于hgroup的应用,避免大家走入误区。

hgroup是HTML5中新定义的元素,用来将标题和副标题群组。在我们已经有header标签的情况下,为什么我们还要一个<hgroup>标签?下面将是这个问题的解答。

什么是 <hgroup>元素

下面是文档关于的描述 <hgroup>的描述:
hgroup一般被用作将一个或者更多的h1到h6的元素群组,比如,一个区块内的标题和它的副标题。

The hgroup element is typically used to group a set of one or more h1-h6 elements --- to group, for example, a section title and an accompanying subtitle.
W3C Specification

这个表述代表着什么?

<hgroup>扮演着一个可以包含一个或者更多标题相关的容器的角色,这些标题可能在&ls;header>元素中。它只能包含从h1-h6的标题元素,这些标题可能是副标题、二选一的标题或者标记标题。

更简单的理解如何使用<hgroup>的方法,是我们通过一些例子。比如下面 Dr.Oli 的例子:

当article标签有且只有一个标题的时候:

<article> 
 <h1>Article title</h1> 
 <p>Content…</p> 
</article>

当article标签有一个标题,并且还包含元数据的时候(meatadata)

<!-- Wrapping title and metadata in header --> 
<article> 
 <header> 
 <h1>Article title</h1> 
 <p>(<time datetime="2009-07-13">13th July, 2009</time>)</p> 
 </header> 
 <p>Content…</p> 
</article>

当article标签有一组自我闭合标题的时候:

<!-- Title h1 and subtitle h2 in hgroup --> 
<article> 
 <hgroup> 
 <h1>Article title</h1> 
 <h2>Article subtitle</h2> 
 </hgroup> 
 <p>Content…</p> 
</article>

一个article标签包含一个标题和副标题和元数据

<!-- A heading which uses header and hgroup --> 
<article> 
 <header> 
 <hgroup> 
 <h1>Article title</h1> 
 <h2>Article subtitle</h2> 
 </hgroup> 
 <p>(<time datetime="2009-07-13">13th July, 2009</time>)</p> 
 </header> 
 <p>Content…</p> 
</article>

我们为什么要使用<hgroup>?

我们用<hgroup>一切源起文档大纲(document outline).
当群组的标题在<hgroup>元素的时候,大纲的算法将会覆盖掉群组中低等级的标题,而将最高等级的标题作为大纲。下面的就是一个例子:

<header> 
 <hgroup> 
 <h1><a href="/">Mini Apps</a></h1> 
 <h2>Web applications for iPhone, Android & other mobile platforms</h2> 
 </hgroup> 
</header>

<hgroup>包含h1-h2的标题元素,但是在大纲中只包含<h1>.就像下图展示的那样子。

我们可以从这个链接查看文档大纲:

http://gsnedders.html5.org/outliner/

总结:

我们刚刚讲的是如何高效的使用 <hgroup>元素。回顾一下:
.如果你只有一个标题元素(h1-h6中的一个),你并不需要<hgroup>.
.当出现一个或者一个以上的标题与元素时,适用<hgroup>来包围他们。
.当你的有一个标题有副标题或者其它的和section或者article有关系的元数据时,将<hgroup>和元数据放到一个单独的<header>元素容器中。记得加入我们交流群:295431592

赞(0)
未经允许不得转载:工具盒子 » 解析HTML5中hgroup元素