Header部分
在header部分中,我们可以放置相关的标题或者图片,以标识出页面的首部结构,注意在HTML5中,一个页面中可以有多个header,我们现在详细将header部分进行编写,如下代码:
<div class="bar"></div>
<a href=""><img id="logo" src="" alt="" /></a>
<hgroup>
<h1>html5 Web Design</h1>
<h2>Building your website for the future</h2>
</hgroup>
<nav role="navigation">
<ul id="main-nav">
<li><a href="" title="">Home</a></li>
<li><a href="" title="">About</a></li>
<li><a href="" title="">Blog</a></li>
<li><a href="" title="">Contact</a></li>
</ul>
</nav>
</header>
在header部分中,首先有一个小的div层,定义为bar的css样式(其值详细见style.css文件中的定义)。接下来的为HTML5新定义的元素,hgroup一般被用作将一个或者更多的h1到h6的元素群组放置在一起,它最适合于做比如正副标题的组合,这里<h1>中为主标题,<h2>中为副标题。
<nav>是HTML5新增加的标签,它的作用可以在里面存放一些站点中常用的导航链接,使代码结构在语义化方面更加准确,同时对于屏幕阅读器等设备的支持也更好根据W3C的规定,其中的导航元素链接到其他页面或当前页面的其他部分。并不是所有的链接组都要被放进<nav>元素;例如,在页脚中通常会有一组链接,包括服务条款、首页、版权声明等;这时使用<footer>元素是最恰当的,而不需要元素。这里,<nav>中,同样可以使用传统的〈ul>和<li>和元素。
而在我们的例子中,在页面的右侧部分,同样也会有使用的部分,如下图所示:
▲
接下来,我们讲解下其中HTML5的一个标签〈aside>,这个标签曾经经历了两次修订(尽管有可能还不是最后的版本),它的主要功能上文中已经有提及,当它放在中时,的内容应该是跟标签不在标签中时,的内容应该与当前页面的内容有一定的相关性,例子如下;
<header>
<h1>My Blog</h1>
</header>
<article>
<h1>My Blog Post</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<aside>
<!—aside标签在article中,因此内容应该与article中有一定的相关性-->
<h1>Glossary</h1>
<dl>
<dt>Lorem</dt>
<dd>ipsum dolor sit amet</dd>
</dl>
</aside>
</article>
<aside>
<!-aside标签在article标签外,因此内容 -->
<h2>Blogroll</h2>
<ul>
<li><a href="#">My Friend</a></li>
<li><a href="#">My Other Friend</a></li>
<li><a href="#">My Best Friend</a></li>
</ul>
</aside>
</body>
主要内容部分的设计
接下来,我们开始页面主要部分内容的设计,即<div id=“content”>部分的实际内容。我们再次细化后的框架代码如下:
<article class="post">
<header class="post-9 hentry"></header>
<section></section>
<footer class="meta"></footer>
<section id="comments"></section>
</article>
</div>
在这里,我们把文章区域(包括正文及评论都看作一为article标签元素中的内容)。根据W3C的规定,article标签中的内容可以是来自一个外部的新闻提供者的一篇新的文章,或者来自 blog 的文本,或者是来自论坛的文本或是来自其他外部源内容。
先来看正文部分中的header部分,代码如下:
<h1>Demo to explore html5 Structural Elements </h1>
<small class="meta">
<time datetime="2011-07-07" pubdate>Wednesday, July 7, 2011</time> <address class="vcard">by <a class="url n fn" rel="author" href="" title="View Steven Bradley's profile">Steven Bradley</a></address> </small>
<p class="intro">……….</p>
<p></p>
</header>