html5语义化标签使用规范

Html5添加了很多语义化标签,一个典型的html5页面结构可以如下安排

一、使用案例

1. 头部——header和nav标签

header头部,body下的直接子元素header一般用于放页面的介绍性的信息如网站名称、logo或者导航栏nav。

    <header>
        <h1>html5语义化标签</h1>
        <nav>
            <h1>导航</h1>
            <ul>
                <li>章节标签</li>
                <li>标题标签</li>
            </ul>
        </nav>
    </header>

使用html5的header和nav标签

    <div class="header">
        <h1>html5语义化标签</h1>
        <div class="nav">
            <h2>导航</h2>
            <ul>
                <li>章节标签</li>
                <li>标题标签</li>
            </ul>
        </div>
    </div>

传统的头部

注意到上面用了两个h1标签,在传统的html4里面,h1标题一般只能用一个,用于表示页面的大标题。但是在html5标签里面,所有的标题标签h1~h6都可用于不同的章节里。如上,第二个h1标签隶属于nav标签,与第一个h1是不同级别的。在Chrome里面第二个h1的样式字体小于第一个:

 

2. 主体部分——main和section

    <main>
        <section>
            <hgroup>
                <h2>章节标签</h2>
                <p>为页面区分不同的章节</p>
            </hgroup>
            <div>包括section article nav aside </div>
        </section>
        <section>
            <hgroup>
                <h2>标题标签</h2>
                <p>为不同的章节定义标题</p>
            </hgroup>
            <div>h1 h2 h3 h4 h5 h6六个标题标签</div>
        </section>
    </main>

main标签表示页面的主体部份,section标签给页面区分不同的章节。section是一个章节标签,构建页面的大纲(outline)。除此外还有nav、artical和aside三个标签能够勾勒页面的轮廓。章节标签通常会带上h1~h6的标题标签。不同的章节标题是独立的,嵌套的章节标题也跟着嵌套。另外多个标题可以用hgroup包括起来,在页面提纲里成为独立的一条内容。

注意上面的main标签是后来出的标签,所有IE浏览器都不支持该标签,会把其子元素标签变成相邻的标签,从而页面错乱。解决办法是,IE8及以下用document.createElement("main")的办法让其识别,而IE9及以上设置css: main{display: block}即可。

3. 尾部——footer

    <footer>
        <p>copyright &copy hello, world</p>
    </footer>

footer和header一样,用在不同的章节里,可以显示该章节(如body整个页面)相关的外链、版权等信息。

二、页面的轮廓(outline)

上面已提多次提到outline和section章节,有一个在线工具HTML 5 Outliner可以抽象出页面的提纲,上面的demo用这个工具提炼的大纲如下:

页面的outline w3c有规定一个算法提取。

之所以要考虑大纲的问题主要有两个好处:第一个是搜索引擎优化(SEO),第二个是屏幕阅读器可以快速地提取内容概要。这也是html5语义化标签的生命力所在,也是本文讨论的意义所在,同时也是和html4一个很大区别的地方。

页面的大纲是通过上面提到的四个章节元素section、article、aside、nav和章节的根元素body区分不同的章节,而章节的大纲内容或者说标题通过h1等标题标签定义。相反地,header/footer/div等元素并不会有outline的作用,在里面定义的h1等标题标签属于该header/footer所在标签的章节。同时注意有几个标签定义的标题不会给该标签所在的章节贡献轮廓作用:blockquote body details dialog fieldset figure td。如下示例:

<body>
    <h1>一级大纲</h1>
    <blockquote>
        <h2>blockquote内的标题</h2>
    </blockquote>
    <div>
        <h2>div内的标题</h2>
    </div>
</body>

blockquote里面的h2标签并不会给页面的大纲增加内容

三、如何使用

1. div和section、section和article的区别

div是一个普通的容器,而section不能当作一个普通的容器使用,使用section要让其起outline的作用,而article比section的章节概念更强。article适用于独立性强的内容,如本身就是一篇文章、博客,或者用户的评论等,article比section更加强调需要包含一个标题标签h1~h6。如果使用article的语义性更好的时候,就不用section。或者,内容可再继续细分章节的也应使用article。

2. 章节的内容是独立的,并且可以嵌套

独立是指每个章节都可以有自己的标题标签、header、footer和nav,并且章节可以相互嵌套,例如:

<body>
    <h1>html标签</h1>
    <article>
        <h1>html5标签</h1>
        <section>
            <h1>标题标签</h1>
        </section>
        <section>
            <h1>章节标签</h1>
        </section>
    </article>
    <article>
        <h1>html4标签</h1>
    </article>
</body>

3. 其它一些常用标签

(1)figure和figcaption

figure用作照片及其注释的容器

    <figure>
        <img src="Mars.jpg" alt="">
        <figcaption>火星</figcaption>
    </figure>

(2)aside

aside的内容与页面的主体内容相切,可用作侧边栏

(3)更多标签

更多标签的使用见MDN HTML5 标签列表

参考:

1. w3c关于标签标准说明:https://w3c.github.io/html/single-page.html

2. dive into html5对html5新标签的解释和使用介绍,http://diveintohtml5.info/semantics.html

时间: 2024-10-26 21:11:49

html5语义化标签使用规范的相关文章

HTML5语义化标签

一.什么是语义化标签?1.那么什么叫做语义化呢?说的通俗点就是:就是给div起个外号,比如,网页上的文章的标题就可以叫他标题,网页上的各个文章,就可以叫他文章. 2.为啥使用语义化标签?(1). 更容易被搜索引擎收录.(2). 更容易让屏幕阅读器读出网页内容.(3). 能够更好的体现页面的主题.(4).兼容性更好,支持更多的网络设备.二.常见语义化标签 头部--header和nav标签 header头部,body下的直接子元素header一般用于放页面的介绍性的信息如网站名称.logo或者导航栏

html5语义化标签——回顾

html5 头部结构   <!doctype html>    <meta charset=“utf-8”/> <header></header> 页眉 主要用于页面的头部的信息介绍,也可用于板块头部 <hgroup></hgroup> 页面上的一个标题组合 一个标题和一个子标题,或者标语的组合 <hgroup> <h1></h1> <h2></h2> </hgroup

HTML5语义化标签总结

1.语义化标签总结 基础布局标签 <header></header> <nav></nav> <main></main> <aside></aside> <article></article> <footer></footer> 注意:IE8以后不兼容H5标签,如果需要兼容IE8一下的浏览器,则需要如下操作: 如果在sublime,或者WebStrom使用 可是使

好程序员web前端分享常见html5语义化标签

我们知道,创建结构清晰的页面可以建立良好的语义化基础,也降低了使用css的难度,下面总结了一些常用的语义化标签,有空慢慢更新,欢迎大家补充 语义化HTML:用最恰当的HTML元素标记的内容. 优点:1 提升可访问性:  2 S-EO:   3 结构清晰,利于维护: (HTML5旧的行内元素都被归类为短语内容) 通用容器:div——块级通用容器:span——短语内容无语义容器. 如果语义不合适,也不要霸王硬上弓,=.. =老实的用div吧. < title></title>:简短.描

html5 语义化标签

html的标签语义化: 直观的认识标签的用途和属性的作用. 直观的语义化标签: 1.header<定义头部>2. nav<导航栏>3. article<文章>4. section<段>5. footer<尾部>6. aside<侧边栏>7. datalist<下拉列表/和文本框一起用> <!DOCTYPE html> <html> <head> <meta charset=&quo

html5新增的语义化标签

1.什么是语义化标签? 那么什么叫做语义化呢,说的通俗点就是:明白每个标签的用途(在什么情况下我可以使用这个标签才合理)比如, 网页上的文章的标题就可以用标题标签,网页上的各个栏目的栏目名称也可以使用标题标签. 文章中内容的段落就得放在段落标签中,在文章中有想强调的文本,就可以使用em标签表示强调等等. 2.为啥使用语义化标签? 1. 更容易被搜索引擎收录. 2. 更容易让屏幕阅读器读出网页内容. 3. 能够更好的体现页面的主题 4.兼容性更好,支持更多的网络设备 3.html语义化标签 1):

HTML5之语义化标签

在HTML5之前采用HTML+CSS文档结构写法: ID选择器说明 id选择器——用于标识页面上特定元素(比如站点导航.页眉.页脚)而且必须唯一; 也可以用来标识持久结构性元素(如主导航.内容区域) class选择器说明 class类选择器——可以应用于页面任意多个元素,非常适合标识内容类型或其他相似的条目. 代码: <body> <div id="header">...</div> <div id="nav">...

浅谈html语义化标签,Html5新增语义化标签

Html语义化标签,Html5新增语义化标签 自己在学习的期间,整理了下html关于语义化标签的一些知识,列的不是很全. 希望大家有新的见解可以给我留言,我会补充上去,谢谢大家 1.什么是语义化标签? 那么什么叫做语义化呢,说的通俗点就是:明白每个标签的用途(在什么情况下我可以使用这个标签才合理)比如, 网页上的文章的标题就可以用标题标签,网页上的各个栏目的栏目名称也可以使用标题标签. 文章中内容的段落就得放在段落标签中,在文章中有想强调的文本,就可以使用em标签表示强调等等. 2.为啥使用语义

html5中语义化标签以及兼容性处理方法

1.html5中新增的语义化标签: artical footer header nav section aside 2.在IE8和IE8以下浏览器不支持以上新增的语义化标签 3.解决方案 方案1:在浏览器解析前动态创建标签元素,然后转成块级元素 例如: document.createdElement("header") 方案2:通过引入html5shiv.js插件动态创建元素 <!-- 小于等于 ie 8 才进行引包, 用于兼容 html5 语义化标签 --> <!-