2012-09-15 77 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“一个较大的工作的一部分,例如一章”或“的,人们可以设想独立地联合发布内容的独立单元”,分别。

这是编码风格的问题。没有通用软件(如浏览器或搜索引擎)在这里关心您的选择。