将HTML5元素映射到HTML类和ID,但标题标签呢?

时间:2010-08-12 12:02:34

标签: html html5 hierarchy semantic-markup

在工作中我们开始遵循这个特定的指南来慢慢实现HTML5好东​​西:

http://oli.jp/2008/html5-class-cheatsheet/

使用HTML5结构的基本思想,但HTML4 div与类和ID相反。我们知道可以创建需要HTML5元素的Javascript脚本(因此IE实际上可以设置它们的样式,否则它不会!)但我们强调要让我们所有的网站都可以访问,在IE6 +上工作而不需要Javascript能够发挥作用。

我们已经开始使用HTML5 doctype,因为拥有'data-'属性的强大功能对我们很有用。 (ala John Resig的文章http://ejohn.org/blog/html-5-data-attributes/

第一篇文章建议的所有内容对我们来说都是相当不错的,但有一个混乱的方面是如何处理标头标签层次结构。对于每个定义的块(无论是文章,旁边,页脚等),我们是否再次从顶部开始标题层次结构?例如,h1,h2,h3 ......对于一篇文章。然后页面上的下一篇文章将有h1,h2,h3 ...然后为页脚(如果它有标题)然后它将再次启动h1,h2,h3 ...并且除了它将再次开始h1,h2,h3 ......

...如果是这种情况,在搜索引擎和屏幕阅读器等网页上有大量的h1,h2,h3会产生什么影响?我们使用的是html5 doctype,但并没有真正使用新的文章,页脚,导航标签,而是考虑使用HTML5方式的标题层次结构。

任何人都可以帮助解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

如果您没有使用实际分区元素,则不应“重置”为h1。也就是说,以下是适当的:

<h1>Site title</h1>
<div class=article>
  <h2>The most interesting article ever!</h2>
  <div class=section>
    <h3>Foo</h3>
    <p>Bar
  </div>
  <div class=section>
    <h3>Baz</h3>
    <p>Quux
  </div>
</div>

使用实际元素,您可以使用

<h1>Site title</h1>
<article>
  <h2>The most interesting article ever!</h2>
  <section>
    <h3>Foo</h3>
    <p>Bar
  </section>
  <section>
    <h3>Baz</h3>
    <p>Quux
  </section>
</article>

<h1>Site title</h1>
<article>
  <h1>The most interesting article ever!</h1>
  <section>
    <h1>Foo</h1>
    <p>Bar
  </section>
  <section>
    <h1>Baz</h1>
    <p>Quux
  </section>
</article>

我建议使用HTML5 Outliner检查您对标题的使用是否正确。