2012-09-15 117 views
2

應該使用哪個新的HTML5元素而不是div.container和div.content?HTML 5元素的內容?

<header> 
    site header 
</header> 

<div class="container"> 

    <div class="content"> 

    <article> 
     content 
    </article> 

    <article> 
     content 
    </article> 

    <article> 
     content 
    </article> 

    </div> 

    <aside> 
    sidebar 
    <aside> 

</div> 

<footer> 
    site footer 
</footer> 
+0

有在http://www.html5accessibility.com/tests/maincontent.html一個''元素的新提案。例如,請參見http://www.brucelawson.co.uk/2012/scooby-doo-content-element/。即使它通過了,它也不會成爲HTML5的一部分,而是HTML5的一部分。同時,按照Matt Whipple的建議使用'role =「main」'。 – Alohci

回答

1

你不能一般回答這個例子,它取決於頁面的內容。

這裏重要的是你的頁面大綱。因此,您可以忽略所有div元素,因爲它們不影響大綱。如果你需要需要作爲CSS或JavaScript的鉤子,請使用它們。

第一個問題會是:aside與整個頁面有關還是與「內容區」有關?如果它與整個頁面有關,則不得包含包含在另一個分段元素中。如果它與內容區域有關,則已將包括在該區段元素中。這裏我假定它與整個網頁有關。

第二個問題:有三個article元素的共同標題?例如:「我最喜歡的書」,「最新的博客文章」或「產品」。如果是這樣,您應該使用將這三個article元素分組的元素。如果沒有可能的標題,那麼您可能不希望在此處使用切片元素,因此可以使用div或根本不使用元素。

第三個問題(如果第二個問題得到的回答正):應此切片元件是sectionarticle元件?如果您對這三個「東西」使用article元素的選擇是正確的,那麼可能是(但不是!)在這裏需要section。再次使用article是否正確,取決於實際內容。因此,它可以可能是您更希望的

<article> 
    <section></section> 
    <section></section> 
    <section></section> 
</article> 

代替

<section> 
    <article></article> 
    <article></article> 
    <article></article> 
</section> 

在這裏,我假設你使用article三個「東西」的選擇是正確的。

所以最終版本可能看起來像:

<header> 
    <!-- if this header applies to the whole page --> 
</header> 

<section> 

    <!-- a h1 like "Latest blog posts" --> 

    <article> 
     content 
    </article> 

    <article> 
     content 
    </article> 

    <article> 
     content 
    </article> 

</section> 

<aside> 
    <!-- if this aside applies to the whole page --> 
<aside> 

<footer> 
    <!-- if this footer applies to the whole page --> 
</footer> 
2

div.content大概可以是<section>div.container應該仍然是div

2

它們都不是爲此而設計的。但我建議使用ARIA角色。

<div class="container" role="document"> 

    <div class="content" role="main"> 

這些就也CSS中使用與選擇像div[role='main']

1

我強烈建議你閱讀有關articlesection了在HTML 5 DOCTOR之間的差異。

然後,您將能夠對使用哪些剖切元素以及何時以及何時不使用div做出明智的判斷。

我從他們的博客推測是:

文章:用於內容將做出自己的感覺!

部分:內容是另一部分或物品的邏輯部分(可以嵌套這些部分)。

div:仍然用於容器或作爲樣式的鉤子,這是html5元素不應該用於的東西。

最後,使用html5切片元素的決定通常可以由它包含標題(儘管這不是一條硬性規則)來決定。有幾個有用的工具可以幫助做出這些決定。

HTML5 Outliner - online

HTML5 Outliner - chrome extension

1

要考慮這個問題作爲一個建設性的問題,它需要被解釋爲要求什麼HTML5的草案說此事。那麼答案是W3C HTML5草案中的第4.13.1 The main part of the content。簡單來說,它表示通常你不需要任何特定的標記:只要把內容放在那裏。顯然,如果您需要將它作爲CSS或腳本中的單元處理,您可以將它包裝在div元素中。

並根據該部分,它可以被標爲section或者如果它構成article「一個較大的工作的一部分,例如一章」或「的,人們可以設想獨立地聯合發佈內容的獨立單元」,分別。

這是編碼風格的問題。沒有通用軟件(如瀏覽器或搜索引擎)在這裏關心您的選擇。