html-原创-《html标签语义化,最全总结》

一,什么是HTML语义化标签

根据内容的结构化(内容语义化),选择合适的标签(代码语义化),便于开发者阅读和写出更易维护和理解的代码,同时让浏览器的爬虫和机器很好地解析(这也是SEO的一部分)。

二,为什么要语义化?

1,为了在没有CSS的情况下,页面也能呈现出很好地内容结构、代码结构:为了裸奔时好看
2,用户体验:例如title、alt用于解释名词或解释图片信息、label标签的活用
3,有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重
4,方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页
5,便于团队开发和维护,语义化更具可读性,是下一步网页的重要动向,遵循W3C标准的团队都遵循这个标准,可以减少差异化

三,实际开发中需要注意的点

1,尽可能少的使用无语义的标签div和span;
2,在语义不明显时,既可以使用div或者p时,尽量用p, 因为p在默认情况下有上下间距,对兼容特殊终端有利;
不要使用纯样式标签,如:b、font、u等,改用css设置。
3,需要强调的文本,可以包含在strong或者em标签中(浏览器预设样式,能用CSS指定就不用他们),strong默认样式是加粗(不要用b),em是斜体(不用i);
4,使用表格时,标题要用caption,表头用thead,主体部分用tbody包围,尾部用tfoot包围。表头和一般单元格要区分开,表头用th,单元格用td;
5,表单域要用fieldset标签包起来,并用legend标签说明表单的用途;
6,每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来。

四,标签详解

在这里插入图片描述

1,header

通常被放置在页面或者页面中某个区块元素的顶部,包含整个页面或者区块的标题、简介等信息,起到引导与导航的作用。

我们不但可以放置页面或者页面中某个区块的标题,还可以放置搜索表单、logo图片等元素,按照最新的W3C标准,我们还可以放置<nav>导航栏。

实例:

<header>
    <img src="images/logo.png" alt="**科技" />
    <h1>**信息科技有限公司</h1>
</header>

需要注意的是,一个文档中可以包含一对或者一对以上的<header>标签。标签的位置是次要的,不一定非要显示在页面的上方,我们可以为任何需要的区块标签添加<header>元素,例如下面将要讲解的<article> <section>等标签。

2,nav

表示页面的导航,可以通过导航连接到网站的其他页面,或者当前页面的其它部分。

<nav>不但可以作为页面独立的导航区域存在,我们还可以在<header>标签中使用。此外,<nav>标签还可以显示在侧边栏中。由此可见,一个页面之中可以有多个<nav>标签。

根据HTML5标准,<nav>标签只用于页面的主要导航部分。因为搜索引擎或者屏幕阅读器会根据<nav>标签来确定网站的主体内容,所以并不是任意一组超链接都适合放置在其中,我们只要将主要的,基本的链接组放入即可,对于有辅助性的页脚链接则不推荐使用<nav>标签。

注意:HTML5规范不允许将<nav>标签嵌套在<address>标签中使用。

示例:

<header>
    <img src="images/logo.png" alt="**科技" />
    <h1>**信息科技有限公司</h1>
    <nav>
        <li><a href="#">首页</a></li>
        <li><a href="example.html">客户案例</a></li>
        <li><a href="service_one.html">技术服务</a></li>          
        <li><a href="aboutus_one.html">关于我们</a></li>
        <li><a href="connection.html">联系我们</a></li>
    </nav>
</header>

3,aside

所包含的内容不是页面的主要内容、具有独立性,是对页面的补充。

<aside>标签一般使用在页面、文章的侧边栏、广告、友情链接等区域。

示例:

 <article>
    <h1>HTML5学习之语义化标签</h1>
    <p>....正文.....</p>
    <aside>
        <h2>什么是语义化标签</h2>
        <p>语义化标签就是......</p>
    </aside>
</article>

4,footer

一般被放置在页面或者页面中某个区块的底部,包含版权信息、联系方式等信息。

<header>标签一样,<footer>标签的使用个数没有限制,可以在任意需要的区块底部使用。

示例:

<footer>
    <small>
        版权所有 © 2016-2017 **信息科技有限公司
    </small>
</footer>

5,article

表示包含于一个文档、页面、应用程序或网站中的一段独立的内容,可以被独立的发布或者重新使用文章标记标签。

<article>标签应该使用在相对比较独立、完整的的内容区块,所以我们可以在一篇博客、一个论坛帖子、一篇新闻报道或者一个用户评论中使用它。通常情况下,一个<article>元素包括标题、正文和脚注。和<nav>标签一样,该标签同样不能用在<address>标签中。

示例:

<article>
    <h1>HTML5学习之语义化标签</h1>
    <p>....正文.....</p>
    <footer>版权所有*伪版必究</footer>
</article>

<article>标签还可以嵌套使用,但是它们必须是部分与整体的关系。例如在一篇发表的博客中,我们可以对读者评论使用该标签。

示例:

<article>
    <h1>HTML5学习之语义化标签</h1>
    <p>....正文.....</p>
    <article>
        <header>
            <h2>读者评论</h2>
        </header>  
        <article>
            <header>
                <h3>评论人:张三</h3>
                <p>评论时间:<time datetime="2017-02-15">2017-02-15 11:45:23</time></p>
            </header>
            <p>张三到此一游</p>
        </article>     
        <article>
            <header>
                <h3>评论人:李四</h3>
                <p>评论时间:<time datetime="2017-02-09">2017-02-09 14:20:15</time></p>
            </header>
            <p>李四到此一游</p>
        </article>  
     </article>  
</article>

6,section

是一个主题性的内容分组,通常用于对页面进行分块或者对文章等进行分段

<section>标签所包裹的是有一组相似的主题的内容,可以用这个标签来实现文章的章节、标签式对话框中的各种标签页等类似的功能。

<section>通常包含一个头部<header>、可能还会包含一个尾部<footer>

示例:

<article>
    <h1>JavaScript框架</h1>
    <p>Javascript框架是指以Javascript语言为基础搭建的编程框架。</p>
    <section>
        <h2>angular.Js<h2>
        <p>angular.Js是一款优秀的前端JS框架</p>
    </section>
    <section>
        <h2>Vue.js<h2>
        <p>Vue.js是用于构建交互式的Web界面的库</p>
    </section>
    <section>
        <h2>jQuery<h2>
        <p>jQuery是一个快速、简洁的JavaScript框架。</p>
    </section>
</article>

在这篇关于JS框架的文章中,所列举的三个框架都是文章主题构成的一部分,所以我们使用<section>标签对其进行分段。

我们不但可以在<article>标签中使用<section>标签,还可以在<section>标签中使用<article>标签。

示例:

<section>
    <h1>HTML5技术栈</h1>
    <p>广义而言的HTML5包含HTML、CSS和JavaScript三个部分</p>
    <article>
        <h2>HTML<h2>
        <p>内容</p>
    </article>
    <article>
        <h2>CSS<h2>
        <p>样式</p>
    </article>
    <article>
        <h2>JavaScript<h2>
        <p>行为</p>
    </article>
</section>

注意:
<div> <section> <article>三者的比较:

<div>:应用广泛,只要我们想为一个区域定义一个样式或者为其添加JS行为,就可以使用div标签
<section>:包含的内容是一个明确的主题,通常有标题区域
<article>:如果我们的页面中需要一个单独的模块来实现一个单独的功能,就用<article>,其他的时候都用<section>

7,hgroup

hgroup元素代表“网页”或“section”的标题,当元素有多个层级时,该元素可以将h1到h6元素放在其内,譬如文章的主标题和副标题的组合

示例:

<hgroup>
    <h1>这是一篇介绍HTML 5语义化标签和更简洁的结构</h1>
    <h2>HTML 5</h2>
</hgroup>

8,address

代表区块容器,必须是作为联系信息出现,邮编地址、邮件地址等等,一般出现在footer。

示例:

<address>
    Written by 
    <a href="mailto:webmaster@example.com">Jon Doe</a>.<br> 
    Visit us at:<br>
    Example.com<br>
    Box 564, Disneyland<br>
    USA
</address>

9,table、caption、thead、tr、th、tbody、td、tfoot

使用表格时,标题用caption,表头用thead,主体部分用tbody包围,尾部用tfoot包围。表头和一般单元格要区分开,表头用th,单元格用td

<table>
   <caption>支出统计</caption>
   <thead>
       <tr>
           <th>娱乐项目</th>
           <th>项目支出</th>
       </tr>
   </thead>
   <tfoot>
       <tr>
           <td>Sum</td>
           <td>$180</td>
      </tr>
   </tfoot>
   <tbody>
       <tr>
           <td>聚餐</td>
           <td>200元</td>
       </tr>
   </tbody>
</table>

10,h1、h2、h3、h4、h5、h6

<h1><h2><h3><h4><h5><h6>,作为标题使用,并且依据重要性递减。<h1>是最高的等级。

11,p
段落标记,使用<p>作为段落,不必再使用<br/>来换行,而且不需要<br/>来区分段落与段落。<p></p>中的文字会自动换行,而且换行的效果优于<br>

12,b、em、strong

<b>标签语义为“加粗”

<em>标签语义为“强调”

<strong>标签语义为“更强烈的强调” 而且em 默认用斜体表示,strong 用粗体表示。

当我们知道了这三个标签的语义时,做SEO时就好决定用哪个来强调重要的关键字了,强调用<em><strong>,纯粹加粗用<b>

13,ul、ol、li
<ul>标签语义为定义无序列表

<ol>标签语义为定义有序列表

<li>标签语义为定义列表项目

因此当涉及到列表的项目,应该用<ul><li><ol><li>(或者是<dl><dt><dd>来布局),而不是用<table><p>甚至<span>

14,dl、dt、dd

<dl>标签语义为定义了定义列表

<dt>标签语义为定义了定义列表中的项目(即术语部分)

<dd>标签语义为定义列表中定义条目的定义部分

所以,当我们用带标题的列表时,即可采用<dl><dt><dd>自定义列表实现

示例:

<dl>
    <dt>列表标题</dt>
    <dd>列表内容</dd>
    <dd>列表内容</dd>
</dl>

首先dt和dd是放于dl标签内,标签dt与dd处于dl下相同级。也就是dt不能放入dd内,dd不能放入dt内。在dl下,dt与dd处于同级标签。DD标签可以若干。同时不能不加dl地单独使用dt标签或dd标签。

15,q、blockquote、cite

<q>标签的语义为用来标记简短的单行引用,Web浏览器会自动识别在<q>之间的内容

<blockquote>标签的语义为用来标记那些一段或者好几段的长篇引用

<cite>标签既可以与<q> 一起用,也可以与<blockquote>一起用,用来提供引用内容的来源地址。

示例:

<blockquote cite="http://www.w3cn.org/">
    <p>&#8220;我们大部分人都有深刻体验,每当主流浏览器版本的升级,我们刚建立的网站就可能变得过时,我们就需要升级或者重新建造一遍网站。
例如1996-1999年典型的"浏览器大战",为了兼容 Netscape 和 IE,网站不得不为这两种浏览器写不同的代码。
同样的,每当新的网络技术和交互设备的出现,我们也需要制作一个新版本来支持这种新技术或新设备,例如支持手机上网的 WAP 技术。
类似的问题举不胜举:网站代码臃肿、繁杂浪费了我们大量的带宽;针对某种浏览器的 DHTML 特效,屏蔽了部分潜在的客户;
不易用的代码,残障人士无法浏览网站等等。这是一种恶性循环,是一种巨大的浪费。&#8221;
    </p>
</blockquote>

16,label

<label>标签的语义为为input元素定义标注(标记)

17,ins、del

<ins>标签的语义为定义已经被插入文档中的文本。

<del>标签的语义为定义文档中已被删除的文本。

<ins><del> 一同使用,来描述文档中的更新和修正。知道del,就不要再用<s>做删除线了,用del显然更具有语义化。而且del还带有cite和datetime来表明删除的原因以及删除的时间。ins是表示插入,也有这样的属性。

18,ruby、rt、rp

ruby是一种排版注释系统,是位于横排基础文本上方的简短文字,主要针对东亚语言作出简单的读音注释。例如可以为中文或日文显示读音。

ruby涉及的元素包括ruby、rt以及rp。首先使用ruby指定一个具体的表达式,然后使用rt提供说明。rt部分将显示在表达式上方。

下面这个例子中,拼音将显示在文字的上方。

<ruby>
    北<rt>bei</rt>
    京<rt>jing</rt>
</ruby>

但是在不支持ruby的浏览器中需要使用rp对这两个区块进行视觉上的隔离。

<ruby>
    北
    <rp>
        <rt>bei</rt>
    </rp>
    京
    <rp>
        <rt>jing</rt>
    </rp>
</ruby>

19,time

为了将现在的常用的日期和时间语句用规范的、利于机器识别的格式进行表述,time元素提供了一个可选的时间和时区组件。

为了确保机器能够正确识别,我们可以使用datetime属性,其属性值可以被定义为时间、日期或者这两者的复合体。

<time datetime="2017-07-03">

还可以使用pubdate为一个网页指定发布时间。

<time datetime="2017-07-03" pubdate>
<!--以下两种形式也可以行-->
<time datetime="2017-07-03" pubdate="">
<time datetime="2017-07-03" pubdate="pubdate">

20,mark

mark元素用于高亮标记一段文字。

可以使用mark元素来标记出网页里被搜索的关键词或是用于高亮显示一段解释性的代码。

21,wbr

wbr元素用于让浏览器为长单词增加可选择的破折号,以便自动拆行。

在相当长的单词中插入一对wbr元素,可以让浏览器根据排版的需要决定是否将单词换行。破折号是否出现,以及出现的位置完全由排版决定。wbr只是允许自动拆行,但非强制拆行。

参考:
https://www.cnblogs.com/fliu/articles/5244866.html
https://www.cnblogs.com/hedawei/p/6376087.html
https://www.imooc.com/article/27304?block_id=tuijian_wz

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,737评论 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,449评论 1 45
  • html是什么:超文本标记语言 html的唯一作用就是:给指定的文本添加语义。 html的标准格式: <!DOCT...
    Lins7阅读 986评论 0 2
  • 看着朋友圈一堆跨年的消息,才慢慢发现2016真的要远去了。 回顾这一年,毕业,求职,真的是心态上发生了很大的变化,...
    fairychaser阅读 83评论 0 0
  • 六出离宫降草棚,南窗陶醉不知更。 寒英初日芬芳递,静听东风敲竹声。
    风中漫想阅读 549评论 89 122