今天在学习的过程中碰到了 section这个标签 之前也没有学过 就去搜了一下 研究发现运来section和 前面不是很懂的 dl dt 以及最近写项目用到的一些 诸如 header nav footer竟然是html5 根据许多前端开发者命名频率最高的单词发明的新标签 下面 讲一下对这些标签的理解
一、为什么HTML5要引入新语义标签
在HTML5出现之前,我们一般采用DIV+CSS布局我们的页面。但是这样的布局方式不仅使我们的文档结构不够清晰,而且不利于搜索引擎爬虫对我们页面的爬取。为了解决上述缺点,HTML5新增了很多新的语义化标签。
二、引入语义化标签的优点
引入语义化标签的好处主要有下列三点:
比<|div|>标签有更加丰富的含义,方便开发与维护
搜索引擎能更方便的识别页面的每个部分
方便其他设备解析(如移动设备、盲人阅读器等)
三、标签详解
所谓语义化标签就是一种我们仅通过标签名就能判断出该标签内容的语义的标签。下面将介article、section、nav、aside、header 、footer等HTML5新增的语义化区块标签。
(一) header
通常被放置在页面或者页面中某个区块元素的顶部,包含整个页面或者区块的标题、简介等信息,起到引导与导航的作用。
我们不但可以放置页面或者页面中某个区块的标题,还可以放置搜索表单、logo图片等元素,按照最新的W3C标准,我们还可以放置nav导航栏。
下面是一个使用header标签的网站头部实例:
<header>
![](images/logo.png)
<h1>**信息科技有限公司</h1>
</header>
需要注意的是,一个文档中可以包含一对或者一对以上的header标签。标签的位置是次要的,不一定非要显示在页面的上方,我们可以为任何需要的区块标签添加header元素,例如下面将要讲解的article、section等标签。
(二)nav
表示页面的导航,可以通过导航连接到网站的其他页面,或者当前页面的其它部分
nav不但可以作为页面独立的导航区域存在,而且我们可以在<|header>标签中使用。此外,nav标签还可以显示在侧边栏中。由此可见,一个页面之中可以有多个nav标签。
根据HTML5标准,nav标签只用于页面的主要导航部分。因为搜索引擎或者屏幕阅读器会根据nav标签来确定网站的主体内容,所以并不是任意一组超链接都适合放置在nav标签中,我们只要将主要的,基本的链接组放进 nav 即可,对于有辅助性的页脚链接则不推荐使用nav标签。
(三)aside
所包含的内容不是页面的主要内容、具有独立性,是对页面的补充。
aside一般使用在页面、文章的侧边栏、广告、友情链接等区域。
示例如下:
<article>
<h1>HTML5学习之语义化标签</h1>
<p>....正文.....</p>
<aside>
<h2>什么是语义化标签</h2>
<p>语义化标签就是......</p>
</aside>
</article>
(四)footer
一般被放置在页面或者页面中某个区块的底部,包含版权信息、联系方式等信息。
跟header标签一样,footer标签的使用个数没有限制,可以在任意需要的区块底部使用。
示例如下:
<footer>
<small>
版权所有 © 2016-2017 **信息科技有限公司
</small>
</footer>
(五)article
表示包含于一个文档、页面、应用程序或网站中的一段独立的内容,可以被独立的发布或者重新使用文章标记标签。
article元素应该使用在相对比较独立、完整的的内容区块,所以我们可以在一篇博客、一个论坛帖子、一篇新闻报道或者一个用户评论中使用article元素。通常情况下,一个article元素包括标题、正文和脚注。和nav标签一样,该标签同样不能用在address标签中;
示例如下:
<article>
<h1>HTML5学习之语义化标签</h1>
<p>....正文.....</p>
<footer>版权所有*伪版必究</footer>
</article>
<article>标签还可以嵌套使用,但是它们必须是部分与整体的关系。例如在一篇发表的博客中,我们可以对读者评论使用<article>标签。
示例如下:
<article>
<h1>HTML5学习之语义化标签</h1>
<p>....正文.....</p>
<article>
<header>
<h2>读者评论</h2>
</header>
<article>
<header>
<h3>评论人:张三</h3>
<p>评论时间:<time datetime="2017-01-17">2017-2-15 11:45:23</time></p>
</header>
<p>张三到此一游</p>
</article>
</article>
</article>
(六)section
是一个主题性的内容分组,通常用于对页面进行分块或者对文章等进行分段
section标签所包裹的是有一组相似的主题的内容,可以用这个标签来实现文章的章节、标签式对话框中的各种标签页等类似的功能。
section通常包含一个头部header、可能还会包含一个尾部footer。
应用场景一般是有文章的章节、标签对话框中的标签页、或者论文中有编号的部分。一个网站的主页可以分成简介、新闻和联系信息等几部分。sectoin不仅仅是一个普通的容器标签。当一个标签只是为了样式化或者方便脚本使用时,应该去找 div 。一般来说,当元素内容明确地出现在文档大纲中时,section是很好的选择。通常会带有标题,section h1 /h1 p /p /section。section会用于对网站或者应用程序中页面上的内容进行分块。
示例如下:
<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>Node.Js<h2>
<p>Node.js就是运行在服务端的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>
在这个例子中,section代表一段内容,在这段内容中,HTML、CSS、Javascript是三个完全独立的部分,因而我们使用article标签。
div、section、article三者的比较:
div:应用广泛,只要我们想为一个区域定义一个样式或者为其添加JS行为,就可以使用div标签
section:包含的内容是一个明确的主题,通常有标题区域
article:如果我们的页面中需要一个单独的模块来实现一个单独的功能,就用article,其他的时候都用section。
参考文章:
https://www.jianshu.com/p/c41b88217834
https://blog.csdn.net/anmoran/article/details/48517105