HTML5新元素section和article的区别详解

HTML5带出了一系列新元素,并且将在未来被广泛应用。然而,有一些元素在使用时易被混淆,包括以下两个新元素:<article>和<section>。

在问答网站经常可以看到别人问:在什么情况下我们应该使用这些元素?我们应该如何正确的使用这些元素?<article>和<section>有什么区别?

鉴于以上的这些问题,E良师益友网为大家讲解一下<article>和<section>的区别:

一、Article元素

从名字上,它已经很好的诠释了自己,但是我们仍要看看官方文档上是如何描述它的:

“在文档,页面,应用或是站点上的一个独立部分,并且大体上,是可独立分配,或是重复使用的,例如在发布时。这个可以是论坛帖子,杂志或是新闻,博客条目,用户提交的评论,互动的小工具或小工具,或任何其他独立项目的内容。”

从上描述中,我们可以总结出<article>元素专用于结构化文章,特别是我们要发布的,例如博客,页面内容或是论坛帖子。

以下例子给出了如何使用<article>构建一个博客文章。

<article class="post">

<header>

<h1>This is Blog Post Title</h1>

<div class="post-meta">

<ul>

<li class="author">Author Name</li>

<li class="categories">Save in Categories</li>

</ul>

</div>

</header>

<div class="post-content">

Sweet roll halvah biscuit toffee liquorice tart pudding sesame snaps.

Biscuit powder jelly-o fruitcake faworki chocolate bar. Pudding oat

cake tootsie roll sesame snaps lollipop gingerbread bonbon. Gummies

halvah gummies danish biscuit applicake gingerbread jelly-o pastry.

</div>

</article>

此外,<article>元素还可与section元素结合,需要的时候,可以使用<section>元素将文章分为几个段落,如下例所示。

<article class="post">

<header>

<h1>This is Blog Post Title</h1>

<div class="post-meta">

<ul>

<li class="author">Author Name</li>

<li class="categories">Save in Categories</li>

</ul>

</div>

</header>

<div class="post-content">

<section>

<h2>This is the Sub-Heading</h2>

Sweet roll halvah biscuit toffee liquorice tart pudding sesame snaps.

Biscuit powder jelly-o fruitcake faworki chocolate bar. Pudding oat cake

tootsie roll sesame snaps lollipop gingerbread bonbon. Gummies halvah

gummies danish biscuit applicake gingerbread jelly-o pastry.

</section>

<section>

<h3>This is another Sub-Heading</h3>

Topping cheesecake sweet pie carrot cake sweet roll. Gummi bears lemon drops

toffee sesame snaps tart topping chupa chups apple pie gummies. Wafer chocolate

cake. Sugar plum chocolate bar topping ice cream carrot cake danish bonbon.

Cheesecake gummi bears dragée jujubes dragée dragée brownie jelly biscuit. Powder croissant jelly beans pastry.

</section>

</div>

</article>

二、Section元素

这是一个最容易产生歧义的元素。它与<div>元素有什么区别?我们一直在用<div>来划分段落,所以除了<div>,我们什么时候使用这个元素。我们引用官方文档来阐述它。根据WHATWG文档,对<section>元素做了以下描述:

“<section>元素表示了一篇文档或应用中,通用段落 – WHATWG”

从描述中我们可以看出<section>元素的作用就是分段,或多或少类似于<div>。但是它仍有一个特例。在文档中,加入了一段特别声明:

“当一个元素仅用于风格样式或是为了脚本的方便,我们鼓励作者使用<div>。<section>元素适用于,当元素的内容需要明确的列出时。- WHATWG”

基于这一点,我们可以总结以下两点:

尽管section元素在技术上是可以设计样式的,但是当有复杂的样式或脚本时,我们仍建议使用div元素。

类似于<li>元素,section元素是用来列举内容的。

因此在现实例子中,使用<section>元素的原因是结构化的列出博客的内容,代码如下:

<div class="blog">

<section class="post">

<h2 class="post-title">Blog Post Title</h2>

<p class="post-excerpt">Ice cream tart powder jelly-o.

Gummies chocolate cake ice cream cookie halvah tiramisu jelly-o.</p>

</section>

<section class="post">

<h2 class="post-title">Blog Post Title</h2>

<p class="post-excerpt">Ice cream tart powder jelly-o.

Gummies chocolate cake ice cream cookie halvah tiramisu jelly-o.</p>

</section>

<section class="post">

<h2 class="post-title">Blog Post Title</h2>

<p class="post-excerpt">Ice cream tart powder jelly-o.

Gummies chocolate cake ice cream cookie halvah tiramisu jelly-o.</p>

</section>

</div>

这只是个例子,<section>元素也可以用作其他用途。

总结

如万维网的创始人和W3C的董事所预测的那般,所有HTML5创造出来的新元素都是为了是网络结构更加语义化。如何正确的应用这些元素在网络开发者和设计者之间,仍存有争论。最后,想学习HTML5的同学不妨去看看本站的HTML5+CSS3视频教程

时间: 2024-08-20 05:55:23

HTML5新元素section和article的区别详解的相关文章

[html5]HTML5中&lt;section&gt;和&lt;article&gt;的区别

一.section元素 从字面理解就是区块.部分的意思,相对于article元素更加广泛,每个区块都可以使用,比如页面里的导航菜单.文章正文.文章的评论等. 1.section元素用于对网站或应用程序中页面上的内容进行分块,section元素的作用是对页面上的内容进行分块,或者说对文章进行分段,: 2.一个section元素通常由内容及其标题组成.通常不推荐为那些没有标题的内容使用section元素, 3.section元素并非一个普通的容器元素:当一个内容需要被直接定义样式或通过脚本定义行为时

使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 事件详解

在前文<使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 默认配置与事件基础>中,Kayo 对 jQuery Mobile 事件的基础作出了一些说明,建议在阅读本文前首先阅读前文,这里 Kayo 再引用前文的重要内容. “jQuery Mobile 在基于本地事件上,创建了一系列的自定义事件,大部分事件是基于触摸设备的使用情况开发的,当然这些事件对于桌面环境也会有适当的处理,开发者可以使用 bind() 函数绑定到需要的页面对象中. 值得

for in 和 for of的区别详解

for in 和 for of的区别详解:http://www.fly63.com/article/detial/1444 for in 和 for of 相对于大家肯定都不陌生,都是用来遍历属性的没错.那么先看下面的一个例子: 例1 const obj = { a: 1, b: 2, c: 3 } for (let i in obj) { console.log(i) // a // b // c } for (let i of obj) { console.log(i) // Uncaugh

【转】escape()、encodeURI()、encodeURIComponent()区别详解

escape().encodeURI().encodeURIComponent()区别详解 原文链接:http://www.cnblogs.com/tylerdonet/p/3483836.html JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent . 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 e

cookie 和session 的区别详解 《转》

二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择, 都纪录下来.当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie 里的内容来判断使用者,送出特定的网页内容给你. Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cookie 来辨认使用者,以方便送出使用者量身定做的内容,像是 Web 接口的免费 email 网站,都要用到 C

escape()、encodeURI()、encodeURIComponent()区别详解

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent . 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escape(string) 参数  描述  string  必需.要被转义或编码的字符串. 返回值 已编码的

【转】Cookie和Session的区别详解

转载地址:http://www.phperzone.cn/portal.php?aid=541&mod=view 一.cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案. 同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存一个标识,所以session 机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择 二.会话cookie和持久cookie的区别 如果不设置

Bind和Eval的区别详解

原文:Bind和Eval的区别详解 1.简单描述Eval和Bind的区别 绑定表达式 <%# Eval("字段名") %> <%# Bind("字段名") %> 区别 1.eval是只读数据,bind是可更新的. 2.当对次表达式操作时候,必须用Eval 如<%# Eval("字段名").ToString().Trim() %> 2.若GridView中绑定列里面 设置 内容格式 DataFormateStri

PHP中include和require的区别详解

1.概要  require()语句的性能与include()相类似,都是包括并运行指定文件.不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估:而对于require()来说,文件只处理一次(实际上,文件内容替换require()语句).这就意味着如果可能执行多次的代码,则使用require()效率比较高.另外一方面,如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用include()语句. require的使用方法如:require("myfil