section元素和article元素的区别?

html-css016

section元素和article元素的区别?,第1张

区别:在HTML5中,article元素可以看成是一种特殊类型的section元素,它比section元素更强调独立性。即section元素强调分段或分块,而article强调独立性。具体来说,如果一块内容相对来说比较独立的、完整的时候,应该使用article元素,但是如果你想将一块内容分成几段的时候,应该使用section元素。另外,在HTML5中,div元素变成了一种容器,当使用CSS样式的时候,可以对这个容器进行一个总体的CSS样式的套用。

在HTML5中新增的主体结构元素中有两个元素分别article元素与section元素,这两个元素是什么意思?通常用于哪些内容区块?何时用article元素?何时用section元素?两者之间的区别是什么?

一、article元素

article元素代表文档、页面或应用程序中独立的、完整的、可以独自被外部引用的内容。它可以是一篇博客或报刊中的文章、一篇论坛帖子、一段用户评论或独立的插件,或其他任何独立的内容。除了内容部分,一个article元素通常有它自己的标题(一般放在一个header元素里面),有时还有自己的脚注。

现在,以博客为例来看一段关于article元素的代码示例,代码如下:

<article>

<header>

<h1>article元素使用方法</h1>

<p>发表日期:<time pubdate="pubdate">2010/10/10</time></p>

</header>

<p>article元素是什么?怎样使用article元素?……</p>

<footer>

<p><small>Copyright @ yiiyaa.net All Rights Reserverd</samll></p>

</footer>

</article>

这个示例是一篇讲述article元素使用方法,在header元素中嵌入了文章的标题部分,在标题下部的p元素中,嵌入了一大段该博客文章的正文,在结尾处的footer元素中,嵌入了文章的著作权,作为脚注。整个示例的内容相对比较独立、完整,因此,对这部分内容使用了article元素。

article元素是可以嵌套使用的,内层的内容在原则上需要与外层的内容相关联。例如,一篇博客文章中,针对该文章的评论就可以使用嵌套article元素的方式;用来呈现评论的article元素被包含在表示整体内容的article元素里面。

接着,来看一个关于article元素嵌套的代码示例,代码如下:

<article>

<header>

<h1>article元素使用方法</h1>

<p>发表日期:<time pubdate="pubdate">2010/10/10</time></p>

</header>

<p>article元素是什么?怎样使用article元素?……</p>

<section>

<h2>评论</h2>

<article>

<header>

<h3>发表者:shenmiweiyi</h3>

<p><time pubdate datetime="2011-12-23T:21-26:00">1小时前</time></p>

</header>

<p>这篇文章很不错啊,顶一下!</p>

</article>

<article>

<header>

<h3>发表者:神秘唯一</h3>

<p><time pubdate datetime="2011-12-23T:21-26:00">1小时前</time></p>

</header>

<p>这篇文章很不错啊,对article解释的很详细</p>

</article>

</section>

</article>

这个示例中的内容比上述代码更加完整了,它添加了文章读者的评论内容,示例内容分为几个部分,文章标题放在了header元素中,文章正文放在了header元素后面的p元素中,然后section元素把正文与评论进行了区分(是一个分块元素,用来把页面中的内容进行区分),在section元素中嵌入了评论的内容,评论中每一个人的评论相对来说又是比较独立的、完整的,因此对它们都使用一个article元素,在评论的article元素中,又可以分为标题与评论内容部分,分别放在header元素与p元素中。

另外,article元素也可以用来表示插件,它的作用是使插件看起来好像内嵌在页面中一样。代码如下:

<article>

<h1>一个插件</h1>

<object>

<param name="allowFullScreen" vlaue="true">

<embed src="#" width="600" height="395"></embed>

</object>

</article>

二、section元素

section元素用于对网站或应用程序中页面上的内容进行分块。一个section元素通常由内容及其标题组成。但section元素并非一个普通的容器元素;当一个内容需要被直接定义样式或通过脚本定义行为时,推荐使用div而非section元素。section元素中的内容可以单独存储到数据库中或输出到word文档中。

<section>

<h1>section元素使用方法</h1>

<p>什么时候用section元素?怎样合理使用section元素?</p>

</section>

通常不推荐为那些没有标题的内容使用section元素,可以使用HTML5轮廓工具来检查页面中是否有标题 的section,如果使用该工具进行检查后,发现某个section的说明中有"untitiled section"(没有标题的section)文章,这个section就有可能使用不当。

section元素的作用是对页面上的内容进行分块,或者说对文章进行分段,请不要与有着自己的完整的、独立的内容”的article元素混淆。

下面,来看article元素与section元素结合使用的示例,希望能够帮助你更好地理解article元素与section元素的区别。

<article>

<h1>article元素与section元素的使用方法</h1>

<p>何时使用article元素?何时使用section元素…..</p>

<section>

<h2>article元素使用方法</h2>

<p>article元素代表文档、页面或应用程序中独立的、完整的、可以独自被外部引用的内容。</p>

</section>

<section>

<h2>section元素使用方法</h2>

<p>section元素用于对网站或应用程序中页面上的内容进行分块。</p>

</section>

</article>

上述代码中的内容首先是一段独立的、完整的内容,因此使用article元素。该文章分为3段,每一段都有一个独立的标题,因此使用了两个section元素。请记住,对文章分段的工作也是使用section元素完成的。可能有人会问,为什么没有对第一段使用section元素,这里其实是可以使用section元素的,但是由于其结构比较清晰,分析器可以识别第一段内容在一个section元素里,所有也可以将第一个section元素省略,但是第一个section元素里还要包含于section元素或子article元素,那么就必须写明第一个section元素。

在HTML5中,可以将所有页面的从属部分,譬如导航条、菜单、版权说明等包含一个统一的页面中,以便统一使用CSS样式来进行装饰。最后,关于section元素的使用禁忌总结如下:

1)不要将section元素用作设置样式的页面容器,那是div元素的工作。

2)如果article元素、aside元素或nav元素更符合使用条件,不要使用section元素。

3)不要为没有标题的内容区块使用section元素。

三、两者的区别:

以上讲述了那么多,两者的区别到底是什么呢?事实上,在HTML5中,article元素可以看成是一种特殊类型的section元素,它比section元素更强调独立性。即section元素强调分段或分块,而article强调独立性。具体来说,如果一块内容相对来说比较独立的、完整的时候,应该使用article元素,但是如果你想将一块内容分成几段的时候,应该使用section元素。另外,在HTML5中,div元素变成了一种容器,当使用CSS样式的时候,可以对这个容器进行一个总体的CSS样式的套用。

子元素选择器

.bl-main >section {....}这样写,.bl-main下的只有儿子辈的section应用样式;ie6不支持大于号写法。

.bl-main section{...}这样写,.bl-main下的不论是儿子辈的section还是孙子辈的section都应用样式;也就是说,.bl-main下的所有section都有这个样式。

这是选择器的嵌套(中间用空格隔开),意思是定义包含在id为top_panel元素内的元素,且此元素的id为top_section,样式只对id为top_section(#top_section)起作用。形如:

<div id="top_panel">

<p id="top_section">元素的内容,只对我生效。</p>

</div>

补充:此种方法不够优化,因id是唯一的,所以可取消前面的#top_panel,只用 #top_section {}就行了。