【问题标题】:Do I need all these HTML5 tags for my site’s master header?我是否需要所有这些 HTML5 标签作为我网站的主标题?
【发布时间】:2011-07-17 19:19:36
【问题描述】:

我开始学习 html/css,在整个学习过程中,我发现语义的概念受到了很大的压力。大多数时候我明白我应该使用什么并且一切正常。但是很多时候感觉简单的东西标签太多了,例如:

假设我的网站上有一个带有一些导航链接的主标题,从语义上我得到了:

<section id="masterHeader">
    <header>
        <nav>
            <ul>
                <li><a href="#"> link </a></li>
            </ul>
        </nav>
     </header>
</section>

这是否太过分了,还是我应该这样做,因为它确实完全有意义?似乎有很多不需要的标签。

【问题讨论】:

  • 为什么要将标题包装成一个部分?我认为标题只是一个专门的部分,应该以这种方式使用。除了这个,你的标记对我来说很好。
  • dev.w3.org/html5/html-author/#the-header-element 听起来应该在一个部分中,或者我应该将一个部分用作容器,然后在容器中使用标题?

标签: html semantics


【解决方案1】:

语义设计页面的目的不是因为它更容易让你作为设计者阅读(尽管这是一个很好的好处)或者因为它更轻量级(它通常不是)。相反,语义设计的目的是为您的代码添加意义,这是简单地使用 ID 和类制作 div 无法完成的。爬取您网站的搜索引擎在语义上标记后,表面上可以更好地理解您的代码。

问题是,IE8 及更低版本本身不支持这些语义元素,因此需要 js shiv。但是,如果禁用了 JS,那么您的布局会在 IE8 中中断并降低。这是您在考虑使用 HTML5 元素之前必须认真权衡的权衡,因为您的布局将在没有 js 的 IE8-6 中中断。

另外,我认为 section 元素在您在这里的使用中在语义上是不正确的(但我可能错了,我必须检查 w3c 规范)。但这既不是这里也不是那里,而且大多只是吹毛求疵。

【讨论】:

  • 页眉不是页面的一部分吗?这就是为什么我在那里有部分。
  • w3.org/wiki/HTML/Elements/section :“section 元素不是通用容器元素。只有在文档大纲中明确列出内容时,section 元素才合适。”在您的情况下,您仅将 section 元素用作页面标题部分的容器。但是如果你像这样剖析你的页面,这意味着页脚和容器是部分,然后容器中的子部分也是部分。相反,section 只能用于对主题内容进行分组,例如书籍的章节,或者介绍、结尾和正文
  • @Moses -- 通常拼写为“shim”,但我们经常想要在 IE 上使用 shiv :-)
  • @Pete ejohn.org/blog/html5-shiv 是我第一次听说 HTML5 修复,所以从那以后我一直称它为 shiv。不管怎样,我知道我不止一次想对 IE 进行攻击,所以我想我会继续使用这个术语。
【解决方案2】:

似乎没有必要在部分标签中包含标题标签。相反,它应该看起来像这样:

<header id="masterHeader">
    <nav>
        <ul>
            <li><a href="#"></a></li>
        </ul>
    <nav>
</header>

【讨论】:

  • 离题之类的问题:如果我希望在正文中的所有内容周围有一个容器(包装器),我应该使用 section 还是 div?
  • w3c 已使用以下内容对其进行了定义:“
    标签定义文档中的部分,例如章节、页眉、页脚或文档的任何其他部分。”问题是,如果在这种情况下我们已经有了页眉和页脚标签,那么 section 标签不太可能是为了保存它们。您可以参考这篇文章 - impressivewebs.com/html5-section - 了解应该如何使用 section 标签。话虽如此,我建议改用 div 包装器。希望有帮助=)
  • 编辑:阅读您的编辑,非常感谢,现在更有意义了!
  • 没问题。这是另一篇关于 section 标签用法的好文章。 html5doctor.com/the-section-element
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-03
  • 2016-10-05
  • 1970-01-01
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
相关资源
最近更新 更多