HTML5中的Article和Section元素认识及使用


Posted in HTML / CSS onMarch 22, 2013

HTML5中的Article和Section元素认识及使用 
HTML5带出了一系列新元素,并且将在未来被广泛应用。然而,有一些元素在使用时易被混淆,包括以下两个新元素:<article>和<section>。
最常被问起的问题是:在什么情况下我们应该使用这些元素?以及我们应该如何正确的使用这些元素?

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>元素也可以用作其他用途。

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>

总结
如万维网的创始人和W3C的董事所预测的那般,所有HTML5创造出来的新元素都是为了是网络结构更加语义化。如何正确的应用这些元素在网络开发者和设计者之间,仍存有争论。
无论如何,不要混淆观点。如我之前提出的,只要是合理的情况,且你看到使用了它使得结构变得意义非凡,那么请用它。
HTML / CSS 相关文章推荐
CSS3弹性布局内容对齐(justify-content)属性使用详解
Jul 31 HTML / CSS
css3一款3D字体带阴影效果的实现步骤
Mar 20 HTML / CSS
CSS3网格的三个新特性详解
Apr 04 HTML / CSS
利用HTML5+CSS3实现3D转换效果实例详解
May 02 HTML / CSS
css3中flex布局宽度不生效的解决
Dec 09 HTML / CSS
详解Canvas事件绑定
Jun 27 HTML / CSS
canvas实现有递增动画的环形进度条的实现方法
Jul 10 HTML / CSS
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
Jul 19 HTML / CSS
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
Aug 02 HTML / CSS
详解HTML5中的Communication API基本使用方法
Jan 29 HTML / CSS
Canvas系列之滤镜效果
Feb 12 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
Dec 02 HTML / CSS
纯html5+css3下拉导航菜单实现代码
Mar 18 #HTML / CSS
html5配合css3实现带提示文字的输入框(摆脱js)
Mar 08 #HTML / CSS
html5的新增的标签和废除的标签简要概述
Feb 20 #HTML / CSS
html5新增的属性和废除的属性简要概述
Feb 20 #HTML / CSS
HTML5中微数据概述及在搜索引擎中的使用举例
Feb 07 #HTML / CSS
HTML中fieldset标签概述及使用方法
Feb 01 #HTML / CSS
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
Jan 31 #HTML / CSS
You might like
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
ThinkPHP控制器详解
2015/07/27 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
2015/08/20 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
浅谈python import引入不同路径下的模块
2017/07/11 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
大学生入党自我鉴定
2013/10/31 职场文书
婚礼证婚人证婚词
2014/01/13 职场文书
总经理司机岗位职责
2014/02/06 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
学期个人工作总结
2015/02/13 职场文书
个人总结怎么写
2015/02/26 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
国庆节主题班会
2015/08/15 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android