《HTML5 开发实例大全》——1.30 联合使用< section >和< article >标签

简介:

本节书摘来自异步社区《HTML5 开发实例大全》一书中的第1章,第1.30节,作者: 张明星 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.30 联合使用< section >和< article >标签


05acf339cbe8c70b22fc07c65b229085b381fdb6

实例说明

在HTML 5 中, < section >表示一段专题性的内容,一般会带有标题。< section >应用的典型场景有文章的章节、标签对话框中的标签页、或者论文中有编号的部分。一个网站的主页可以分成简介、新闻和联系信息等几部分。< section >不仅仅是一个普通的容器标签。当一个标签只是为了样式化或者方便脚本使用时,应该使用 div 。一般来说,当元素内容明确地出现在文档大纲中时,< section >就是适用的。

< article >是一个特殊的< section >标签,它比< section >具有更明确的语义,它代表一个独立的、完整的相关内容块。一般来说,< article >会有标题部分(通常包含在 header 内),有时也会包含 footer 。虽然< section >也是带有主题性的一块内容,但是无论从结构上还是内容上来说,< article >本身就是独立的、完整的。当< article >内嵌< article >时,原则上来说,内部的< article >的内容是和外层的< article >内容是相关的。例如,在一篇博客文章中,包含用户提交的评论的< article >就应该嵌套在包含博客文章< article >之中。问题是怎么才算“完整的独立内容”?有一个最简单的判断方法是,看这段内容在 RSS feed 中是不是完整的;看这段内容脱离了所在的语境,是否还是完整的、独立的。

具体实现

使用Dreamweaver创建一个名为“030.html”的文件,具体代码如下所示:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<article>
 <header>
 <h1>The Very First Rule of Life</h1>
 <p><time pubdate datetime="2009-10-09T14:28-08:00"></time></p>
 </header>
 <p>If there's a microphone anywhere near you, assume it's hot and
 sending whatever you're saying to the world. Seriously.</p>
 <p>...</p>
 <footer>
 <a href="?comments=1">Show comments...</a>
 </footer>
</article>
<article>
 <header>
 <h1>The Very First Rule of Life</h1>
 <p><time pubdate datetime="2009-10-09T14:28-08:00"></time></p>
 </header>
 <p>If there's a microphone anywhere near you, assume it's hot and
 sending whatever you're saying to the world. Seriously.</p>
 <p>...</p>
 <section>
 <h1>Comments</h1>
 <article>
  <footer>
  <p>Posted by: George Washington</p>
  <p><time pubdate datetime="2009-10-10T19:10-08:00"></time></p>
  </footer>
  <p>Yeah! Especially when talking about your lobbyist friends!</p>
 </article>
 <article>
  <footer>
  <p>Posted by: George Hammond</p>
  <p><time pubdate datetime="2009-10-10T19:15-08:00"></time></p>
  </footer>
  <p>Hey, you have the same first name as me.</p>
 </article>
 </section>
</article>
</body>
</html>

执行之后的效果如图1-51所示。


5388cc251b1ab61226ed1f4cb8697330573323fc

由上述执行效果可知,在HTML 5中,< div >、< section >、< article >,语义是从无到有,逐渐增强的。< div >无任何语义,仅仅用作样式化或者脚本化的钩子(hook),对于一段主题性的内容,则就适用< section >,而假如这段内容可以脱离上下文,作为完整的独立存在的一段内容,则就适用< article >。原则上来说,能使用< article > 的时候,也是可以使用< section >的,但是实际上,假如使用< article >更合适,那么就不要使用< section >。< nav >和< aside >的使用也是如此,这两个标签也是特殊的< section >,在使用< nav >和< aside >更合适的情况下,也不要使用< section >了。

< div >和< section >、< article >以及其他标签的区分比较简单。< section >和< article >的区分初看比较难,其实重点就是看看这段内容脱离了整体是不是还能作为一个完整的、独立的内容而存在,这里面的重点就在完整上。因为< section >包含的内容也能算作独立的一块,但是,它只能算是组成整体的一部分,< article >才是一个完整的整体。

相关文章
|
16天前
|
移动开发 搜索推荐 HTML5
如何使用HTML5的语义化标签来提高网站的可访问性?
【4月更文挑战第1天】如何使用HTML5的语义化标签来提高网站的可访问性?
22 1
|
1月前
|
开发框架 前端开发 JavaScript
前端框架演进史:从HTML到现代化开发
前端框架演进史:从HTML到现代化开发
33 0
|
4天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
14 1
|
4天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
12天前
|
JavaScript
Vue移动 HTML 元素到指定位置 teleport 标签
Vue移动 HTML 元素到指定位置 teleport 标签
|
16天前
|
移动开发 搜索推荐 开发者
HTML5中的语义化标签有哪些?
【4月更文挑战第1天】HTML5中的语义化标签有哪些?
9 0
HTML5中的语义化标签有哪些?
|
18天前
|
存储 移动开发 前端开发
html的常用标签
【4月更文挑战第1天】html的常用标签
19 4
|
1月前
如何在HTML中添加标签
如何在HTML中添加标签【2月更文挑战第26天】
33 5
|
1月前
HTML标签
【2月更文挑战第16天】HTML标签。
22 3