使用HTML 5大纲(2)
这会给出“Untitled Section(无标题的节)”这样的大纲。对于<section>和<article>来说,这是一条有用的警告,因为这些元素几乎总是以一个标题开始的。
然而,在<nav>和<aside>中,没有标题绝对是合法的。你可能想要给某些<nav>块加上诸如“Most popular posts”或“Recent comments”这样的标题,但是,你可能不想要给主站点<nav>也加一个多余的标题,而只想仅仅是显示“Navigation”。
因此,如果你看到“Untitled Section(无标题的节)”,不要自动地假设应该在那里放上一个标题。将其当做一条警告,而不是一个错误。已经有人报告了一个Bug,以便为<nav>中的无标题的节给出一条较为友好的消息,但是,到目前为止,这个Bug还没有解决。
广州网站建设,网站建设,广州网页设计,广州网站设计
<hgroup>
有时候,可能会有一个标题和一个子标题,或者标语。Slashdot使用“news for nerds. News that matters”;dev.Opera有“Follow the Standards. Break the Rules”;Metafilter则是“community weblog”。我们如何标记这些标语?在HTML 4中,我们可以使用:
- <h1>Metafilter</h1>
- <p>community weblog</p>
但是,这给人感觉不对,因为感觉子标题应该是一个标题。标记这一点的替代方法是:
- <h1>Metafilter</h1>
- <h2>community weblog</h2>
但是,这样一来,站点的每个页眉都需要是<h3>~<h6>,因为它们都是标语的下一层级。在HTML 5中,子标题可以标记为一个从文档大纲中移除的标题元素,如下所示:
- <hgroup>
- <h1>Metafilter</h1>
- <h2>community weblog</h2>
- </hgroup>
这会产生如图2.8所示的大纲。
![]() |
规范对<hgroup>的描述是:“用于文档的摘要、大纲以及类似目的时,hgroup元素的文本定义为该元素的子孙中从h1~h6的最高层级的元素的文本”。
因此:
- <article>
- <hgroup>
- <h2>Get the beers in! Here comes</h2>
- <h1>Remy Sharp!</h1>
- </hgroup>
- </article>
在大纲中显示文本“Remy Sharp”,因为这是该组之中最高层级的标题元素。
成节的根
注意,某些元素(<blockquote>、<body>、<details>、<fieldset>、<figure>、<td>)叫做成节的根,并且它们可以拥有自己的大纲,但是,这些元素中的节和标题对于它们的祖先的大纲没有任何影响。这是因为,你可能在一个<blockquote>中引用一篇文章的几个节,但是这些引用的节并没有构成整个文档大纲的部分。
在下面的例子中:
广州网站建设,网站建设,广州网页设计,广州网站设计
- <h1>Unicorns and butterflies</h1>
- <nav>
- <h2>Main nav</h2>
- ...
- </nav>
- <article>
- <h2>Fairies love rainbows!</h2>
- <p>According to Mr Snuggles the fluffy kitten, fairies
- like:</p>
- <blockquote>
- <h3>Pretty dainty things</h3>
- <p>Fairies love rainbows, ribbons, and ballet shoes</p>
- <h3>Weaponry</h3>
- <p>Fairies favour Kalashnikovs, flick knives, and
- depleted uranium missiles</p>
- </blockquote>
- </article>
大纲不会包含blockquote的内容(如图2.9所示)。
![]() |
在HTML 5中样式化标题
这些内容给CSS的编写者带来了一个挑战。
假定有如下内容:
- <article><section><h1>...</h1></section></article>
- <article><article><h1>...</h1></article></article>
- <section><section><h1>...</h1></section></section>
- <section><aside><h1>...</h1></aside></section>
- <h3>...</h3>





