HTML5帶出了一系列新元素,以下兩個(gè)新元素:article和section是比較混淆,經(jīng)常提到是什么情況下我們應(yīng)該使用這些元素,接下來(lái)為大家介紹下兩者的應(yīng)用,感興趣的各位可以參考下
HTML5帶出了一系列新元素,并且將在未來(lái)被廣泛應(yīng)用。然而,有一些元素在使用時(shí)易被混淆,包括以下兩個(gè)新元素:<article>和<section>。
最常被問(wèn)起的問(wèn)題是:在什么情況下我們應(yīng)該使用這些元素?以及我們應(yīng)該如何正確的使用這些元素?
Section元素
這 是一個(gè)最容易產(chǎn)生歧義的元素。它與<div>元素有什么區(qū)別?我們一直在用<div>來(lái)劃分段落,所以除 了<div>,我們什么時(shí)候使用這個(gè)元素。我們引用官方文檔來(lái)闡述它。根據(jù)WHATWG文檔,對(duì)<section>元素做了以下 描述:
“<section>元素表示了一篇文檔或應(yīng)用中,通用段落 - WHATWG”
從描述中我們可以看出<section>元素的作用就是分段,或多或少類似于<div>。但是它仍有一個(gè)特例。在文檔中,加入了一段特別聲明:
“當(dāng)一個(gè)元素僅用于風(fēng)格樣式或是為了腳本的方便,我們鼓勵(lì)作者使用<div>。<section>元素適用于,當(dāng)元素的內(nèi)容需要明確的列出時(shí)。- WHATWG”
基于這一點(diǎn),我們可以總結(jié)以下兩點(diǎn):
第一,盡管section元素在技術(shù)上是可以設(shè)計(jì)樣式的,但是當(dāng)有復(fù)雜的樣式或腳本時(shí),我們?nèi)越ㄗh使用div元素。
第二,類似于<li>元素,section元素是用來(lái)列舉內(nèi)容的。
因此在現(xiàn)實(shí)例子中,使用<section>元素的原因是結(jié)構(gòu)化的列出博客的內(nèi)容,代碼如下:
代碼如下:
<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>
這只是個(gè)例子,<section>元素也可以用作其他用途。
Article元素
從名字上,它已經(jīng)很好的詮釋了自己,但是我們?nèi)砸纯垂俜轿臋n上是如何描述它的:
“在文檔,頁(yè)面,應(yīng)用或是站點(diǎn)上的一個(gè)獨(dú)立部分,并且大體上,是可獨(dú)立分配,或是重復(fù)使用的,例如在發(fā)布時(shí)。這個(gè)可以是論壇帖子,雜志或是新聞,博客條目,用戶提交的評(píng)論,互動(dòng)的小工具或小工具,或任何其他獨(dú)立項(xiàng)目的內(nèi)容。”
從上描述中,我們可以總結(jié)出<article>元素專用于結(jié)構(gòu)化文章,特別是我們要發(fā)布的,例如博客,頁(yè)面內(nèi)容或是論壇帖子。
以下例子給出了如何使用<article>構(gòu)建一個(gè)博客文章。
代碼如下:
<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元素結(jié)合,需要的時(shí)候,可以使用<section>元素將文章分為幾個(gè)段落,如下例所示。
代碼如下:
<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>
總結(jié)
如萬(wàn)維網(wǎng)的創(chuàng)始人和W3C的董事所預(yù)測(cè)的那般,所有HTML5創(chuàng)造出來(lái)的新元素都是為了是網(wǎng)絡(luò)結(jié)構(gòu)更加語(yǔ)義化。如何正確的應(yīng)用這些元素在網(wǎng)絡(luò)開(kāi)發(fā)者和設(shè)計(jì)者之間,仍存有爭(zhēng)論。
無(wú)論如何,不要混淆觀點(diǎn)。如我之前提出的,只要是合理的情況,且你看到使用了它使得結(jié)構(gòu)變得意義非凡,那么請(qǐng)用它。