是否允许在<section>和<article>元素中使用div?</article> </section>

时间:2014-07-02 09:48:52

标签: html5 semantic-markup

可以使用,例如:

<section>
  <div class="container">
    <div class="column">
      <h2>Perm page title</h2>
      <p>Page body copy.... </p>
    </div class="column">
    <div class="column">
      <iframe><!-- YT video --></iframe>
    </div class="column">
  </div>
</section>

<article>
  <div class="container">
    <div class="column">
      <h2>Blog post title</h2>
      <p>Post body copy.... </p>
    </div class="column">
    <div class="column">
      <iframe><!-- YT video --></iframe>
    </div class="column">
  </div>
</article>

sectionarticle内使用这样的div是否可以,或者部分和文章是否只包含h2 p等?

3 个答案:

答案 0 :(得分:2)

根据规格(W3C)(here)(here)

For article

  

允许的内容:零个或多个样式元素,后跟流   含量

section

  

内容模型:流量内容。

同样,根据规范(W3C)(this)(this)div是“流量内容”,因此对您的问题的回答是 ,可以在此上下文中使用div


再往下,相同规格的以下摘录值得注意:

  

section元素表示文档的通用部分或   应用。在这方面,一节是一个主题分组   内容。应通过以下方式确定每个部分的主题   包括标题(h1-h6元素)作为section元素的子元素。

在您的示例中,您没有使用h2作为section元素的,而是由div包裹。这可能不是语义。

然后,特别是这个(因为它与你问题中的例子有关):

  

鼓励作者使用article元素而不是   当联合内容时,有意义的部分元素   元素。

     

section元素不是通用容器元素。当一个   元素仅用于样式目的或方便   脚本,鼓励作者使用div元素。一个   一般规则是,section元素仅适用于   元素的内容将在文档中明确列出   概要

底线:如果您未在语义上使用section,则建议选择div

答案 1 :(得分:1)

由于h1,h2,...是块元素,而div是通用块元素,因此没有特别的理由拒绝在部分和文章中使用div。

在语义方面,div和span很可能被视为中立。

答案 2 :(得分:1)

规格说:

  

div元素没有特别含义[...] w3.org

因此,您可以使用它进行样式设置,而无需更改HTML的语义。

另一篇关于在HTML5中使用div的有趣文章:http://html5doctor.com/you-can-still-use-div/