霍者博客

HTML5新增的结构元素——能用并不代表就对

做移动端有一段时间,今天有同事问了我article和section标签的使用,模模糊糊的解释了下,他似懂非懂,有点小尴尬。忽然间觉得自己有必要再翻翻书籍,重温下html5的新元素。html5新增的结构元素,有的经常使用到,有的用不上,当页面禁用样式后,它们的展现跟div是没什么差别的,有同学可能会说,既然一样,又不影响页面的最终展现,不管是article还是section能用就好了。如果考虑实际项目针对用户,我也是这么认为的,但作为一个重构仔,我们需要让标签语义化,清晰的结构,更好的seo,利于特殊终端的阅读(无障碍),此时html5标签的作用就很明显了,并不是说能用就好。于是复习下内容并记录在博客上,顺便分享给大家,也方便自己以后查找。

HTML5新增结构元素分为主体结构元素和非主体结构元素

主体结构元素:article、section、nav、aside、time

非主体结构元素:header、hgroup、footer、address

一、主体结构元素

article

article标签,从语义化上看为文档、页面,其用法如下:

通常是一篇文章、一个页面、一个独立完整的内容模块

一般会带个标题,并放在header标签中

article元素可以互相嵌套

使用频率极高,强调独立性,多注意下与header标签的使用。

<article>
    <header>
        <h1>是我标签</h1>
    </header>
    <p>我是段落</p>
    <article>
        <div>我的内容</div>
    </article>
</article>

section

section标签,从语义化上看为部分,其用法如下:

用于页面内容的独立分块,往往是文章的一段

通常由内容和标题组成,没有标题的内容不推荐使用section

使用频率低,强调分段分块。

注:《HTML5与CSS3权威指南》这本书中说明:一个容器需要被定义样式或者脚本定义行为时,推荐用div而非section,不要将section用作设置样式的容器。

<section>
    <h1>水果</h1> 
    <article> 
        <h2>苹果</h2>
        <div>苹果是撒?</div> 
    </article> 
     <article> 
        <h2>桔子</h2>
        <div>桔子是撒?</div> 
    </article> 
</section>
<!-- article可以看成是一种特殊种类的section元素,它比section更强调独立性 -->
<article>
    <h1>中国人物</h1>
    <p>三国、两晋、南北朝</p>
    <section>
        <h2>三国</h3>
        <p>猛将猛将猛将猛将</p>
    </section>
    <section>
        <h2>两晋</h3>
        <p>猛将猛将猛将猛将</p>
    </section>
</article>

nav

nav标签,从语义化上看为导航,其用法如下:

通常作为页面导航的链接组

侧边栏导航

使用频率高。

<nav>
    <ul>
        <li><a href="">菜单1</a></li>
        <li><a href="">菜单2</a></li>
        <li><a href="">菜单3</a></li>
    </ul>
</nav>

aside

aside标签,从语义化上看为在旁边、侧边,其用法如下:

在article标签中使用时,作为主要内容的附属信息部分,如有关的参考资料、名词解释等。

在article标签外使用时,作为页面或者站点全局的附属信息部分,如侧边栏、博客的友情链接部分、广告区域等。

使用频率低。

<!-- 在article标签外使用时 -->
<article>
    <h1>马云是谁</h1>
    <p>马云,男,1964年10月15日出生于浙江省杭州市,中国著名企业家,阿里巴巴集团、淘宝网、支付宝创始人..........</p>
    <aside>
        <h1>参考资料</h1>
        <p>百度网、维基百科...</p>
    </aside>
</article>
<!-- 在article标签内使用时 -->
<aside>
    <nav>
        <ul>
            <li><a href="">老赵的博客</a></li>
            <li><a href="">鬼哥的博客</a></li>
            <li><a href="">彪叔的博客</a></li>
        </ul>
    </nav>
</aside>

time

time标签,从语义化上看为时间,其用法如下:

代表24小时中的某个时刻或某个日期

表示时刻时允许带时间差

可定义很多格式的日期和时间

使用频率低。

<time datetime="2013-3-6">2014年3月6日</time>
<!-- datetime 属性中日期与时间之间要用"T" 分隔,"T'表示时间 -->
<time datetime="2013-3-6T20:00">2014年3月6日20:00</time>
<!-- 时间加上"Z"表示给机器编码时使用 UTC 标准时间 -->
<time datetime="2013-3-6T20:00Z">2014年3月6日20:00</time>

二、非主体结构元素

header

header标签,从语义化上看为文档的页眉,其用法如下:

一种具有引导和导航作用的结构元素

通常放置在整个页面或者页面内的一个内容区块的标题

一个网页内并没有限制header标签的个数

使用频率极高,比较容易理解。

<header>
    <h1>我是大头</h1>
</header>
<article>
    <header>
        <h1>我是脖子</h1>
    </header>
    <p>我是身体</p>
</article>

hgroup

hgroup标签,从语义化上看为标题组,其用法如下:

作为header标签的子元素

一个内容模块中包括了主标题和至少一个子标题才使用hgroup

通常会将h1~h6元素进行分组

使用频率高。

<article>
    <header>
        <hgrounp>
            <h1>我是刘备</h1>
            <h2>我是关羽</h2>
            <h3>我是张飞</h3>
        </hgrounp>
    </header>
    <p>吕布惊呆了</p>
</article>

footer

footer标签,从语义化上看为文档的脚注,其用法如下:

一个内容块区的脚注

通常内容为联系信息、相关阅读、版权信息等

使用频率高,比较容易理解。

<article>
    <p>吕布惊呆了</p>
    <footer>
        <ul>
            <li>关于三国</li>
            <li>地图信息</li>
            <li>游戏攻略</li>
        </ul>
    </footer>
</article>

address

address标签,从语义化上看为地址,其用法如下:

用于文档中呈现的联系信息

通常内容为作者、网站链接、电子邮箱、地址、电话号码等

使用频率低。

<address>
    <a href="">作者:张三丰</a>
    <a href="">地址:武当山</a>
    <a href="">联系方式:1247</a>
</address>

原创文章请注明转载自霍者博客本文地址:http://www.huozheweb.com/post/415.html,标题:HTML5新增的结构元素——能用并不代表就对

【我来说两句】
分享到:

评论 0

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。