3.2 新增的非主体结构元素
除了以上几个主要的结构元素之外,HTML 5内还增加了一些表示逻辑结构或附加信息的非主体结构元素。下面分别来介绍。
3.2.1 header元素
header元素是一种具有引导和导航作用的结构元素,通常用来放置整个页面或页面内的一个内容区块的标题,但也可以包含其他内容,例如数据表格、搜索表单或相关的logo图片。
很明显,整个页面的标题应该放在页面的开头,我们可以用如下所示的形式书写页面的标题:
<header><h1>页面标题</h1></header>
需要强调的一点是:一个网页内并未限制header元素的个数,可以拥有多个,可以为每个内容区块加一个header元素,如代码清单3-12所示。
代码清单3-12 多个header元素示例
<header> <h1>网页标题</h1> </header> <article> <header> <h1>文章标题</h1> </header> <p>文章正文</p> </article>
在HTML 5中,一个header元素通常包括至少一个heading元素(h1-h6),也可以包括我们后面将要讨论的hgroup元素,还可以包括其他元素(譬如table或form),根据最新的W3C HTML 5标准,还可以包括nav元素。最后,让我们看一下博客网页中header元素的一个应用示例。示例中header元素处于页面顶部。详见代码清单3-13。
代码清单3-13 博客网页中header元素的示例
<header> <hgroup> <h1>IT新技术</h1> <a href="http://blog.sina.com.cn/itnewtech"> http://blog.sina.com.cn/itnewtech </a> <a href="#">[订阅]</a> <a href="#">[手机订阅]</a> </hgroup> <nav> <ul> <li>首页</li> <li><a href="http://blog.sina.com.cn/articlelist1.html">博文目录</a></li> <li><a href="http://photo.blog.sina.com.cn/itnewtechl">图片</a></li> <li><a href="http://photo.blog.sina.com.cn/itnewtech">关于我</a></li> </nav> </header>
如果对这段代码使用CSS样式,显示界面如图3-3所示。
图3-3 博客网页中header元素示例
3.2.2 hgroup元素
hgroup元素是将标题及其子标题进行分组的元素。hgroup元素通常会将h1~h6元素进行分组,譬如一个内容区块的标题及其子标题算一组。
通常,如果文章只有一个主标题,是不需要hgroup元素的,如代码清单3-14所示。
代码清单3-14 只有header元素的示例
<article> <header> <h1>文章标题</h1> <p><time datetime="2010-03-20">2010年10月29日</time></p> </header> <p>文章正文</p> </article>
但是,如果文章有主标题,主标题下有子标题,就需要使用hgroup元素了,如代码清单3-15所示。
代码清单3-15 hgroup元素示例
<article> <header> <hgroup> <h1>文章主标题</h1> <h2>文章子标题</h2> </hgroup> <p><time datetime="2010-03-20">2010年10月29日</time></p> </header> <p>文章正文</p> </article>
3.2.3 footer元素
footer元素可以作为其上层父级内容区块或是一个根区块的脚注。footer通常包括其相关区块的脚注信息,如作者、相关阅读链接及版权信息等。
在HTML 5出现之前,我们使用下面的方式编写页脚,如代码清单3-16所示。
代码清单3-16 HTML 5之前的页脚示例
<div id="footer"> <ul> <li>版权信息</li> <li>站点地图</li> <li>联系方式</li> </ul> <div>
但是到了HTML 5之后,这种方式将不再使用,而是使用更加语义化的footer元素来替代,如代码清单3-17所示。
代码清单3-17 footer元素示例
<footer> <ul> <li>版权信息</li> <li>站点地图</li> <li>联系方式</li> </ul> </footer>
与header元素一样,一个页面中也未限制footer元素的个数。同时,可以为article元素或section元素添加footer元素,请看下面两个示例。
代码清单3-18为一个在article元素中添加footer元素的示例。
代码清单3-18 在article元素中添加footer元素
<article> 文章内容 <footer> 文章的脚注 </footer> </article>
代码清单3-19为一个在section元素中添加footer元素的示例。
代码清单3-19 在section元素中添加footer元素
<section> 分段内容 <footer> 分段内容的脚注 </footer> </section>
3.2.4 address元素
address元素用来在文档中呈现联系信息,包括文档作者或文档维护者的名字、他们的网站链接、电子邮箱、真实地址、电话号码等。address应该不只是用来呈现电子邮箱或真实地址,还应用来展示跟文档相关的联系人的所有联系信息。譬如,在代码清单3-20中,展示了一些博客中某篇文章评论者的名字及其在博客中的网址链接。
代码清单3-20 address元素示例
<address> <a href=http://blog.sina.com.cn/itnewtech>陆凌牛</a> <a href=http://blog.sina.com.cn/zhangyu>张玉</a> <a href=http://blog.sina.com.cn/baiquanli>白权立</a> </address>
下面我们通过代码清单3-21来看如何把footer元素、time元素与address元素结合起来使用。
代码清单3-21 footer、time与address结合使用的例子
<footer> <div> <address> <a title="文章作者:陆凌牛" href="http://blog.sina.com.cn/itnewtech">陆凌牛</a> </address> 发表于<time datetime="2010-10-04">2010年10月4日</time> </div> </footer>
在这个示例中,把博客文章的作者、博客的主页链接作为作者信息放在了address元素中,把文章发表日期放在了time元素中,把这个address元素与time元素中的总体内容作为脚注信息放在了footer元素中。