【问题标题】:What do <header> and <footer> actually do?<header> 和 <footer> 实际上是做什么的?
【发布时间】:2013-05-21 16:48:58
【问题描述】:

页眉和页脚有什么意义?

鉴于它们是按照编写顺序在页面上呈现的,如here 所示,它们之间有什么区别?

<article>
    <footer>This is a footer</footer>
    <header>This is a header</header>
</article>

【问题讨论】:

  • 语义。就是这样。 HTML毕竟是一种标记语言。您选择使用的标签提供了有关文档含义的额外信息。
  • @JamesAllardice 那么它们是做什么用的?对我来说,&lt;footer&gt;&lt;header&gt;&lt;aside&gt; 在语义上是相同的,只是在页面的不同位。他们都是“旁白”。
  • 规范是查找该信息的最佳位置。例如,查看the header element 部分,它解释说它“代表一组介绍性或导航帮助”。

标签: html web-applications user-interface semantic-markup


【解决方案1】:

唯一确定的来源是 HTML5 规范。它定义了这些元素的含义。

对于header element

header 元素表示一组介绍性或导航帮助。

对于footer element

footer 元素表示其最近的祖先分段内容或分段根元素的页脚。页脚通常包含有关其部分的信息,例如作者、相关文档的链接、版权数据等。

这两个部分都提供了更多用于预期用途的 cmets 和示例。

用我自己的话来说:

footer 是存放元数据的地方,例如作者姓名、出版日期、类别/标签等。每个分段元素(sectionarticleasidenav)都可以有自己的@ 987654334@ 元素。如果footer 不是这样一个分节元素的一部分,它适用于整个页面。示例:

<body>
  <article>
    <footer><!-- metadata about the article --></footer>
  </article>
  <footer><!-- metadata about the whole page --></footer>
</body>

header 元素用于介绍性内容,如标题、摘要/摘要、“NSFW”等警告。

请注意,HTML5 规范不包含与 header 相同的关于分割元素的措辞,就像 footer 的情况一样。但是,这已经是fixed in HTML5.1(参见relevant bug),并且可能也会在 HTML5 中进行更改。

你不应该注意这些元素的命名。 header 也可以出现在文章的末尾,footer 也可以出现在文章的开头。

整体情况:headerfooter(和 address)可用于标记部分的分段元素(或整个页面)的内容分节元素(或整个页面)的主要内容。

一个没有footer的简单例子:

<article>
  <h1>About me</h1>

    <h2>What I love</h2>
      <p>I like <cite>The Hitchhiker's Guide to the Galaxy</cite>.</p>

    <h2>What I hate</h2>
      <p>I hate <cite>Pacman</cite>.</p>

    <p>Tags: <a href="/personal">personal</a>, <a href="/fandom">fandom</a></p>

</article>

↑ 这里最后一段(包含本文的标签)将在标题“我讨厌什么”的范围内。这当然是错误的,因为我不讨厌“标签”、“个人”或“狂热”。所以我们应该在标记中反映这一点,这样这个段落就不会与前面的标题相关联:

<article>
  <h1>About me</h1>

    <h2>What I love</h2>
      <p>I like <cite>The Hitchhiker's Guide to the Galaxy</cite>.</p>

    <h2>What I hate</h2>
      <p>I hate <cite>Pacman</cite>.</p>

    <footer>
      <p>Tags: <a href="/personal">personal</a>, <a href="/fandom">fandom</a></p>
    </footer>
</article>

↑ 现在我们将标签放在footer 中,它们不再属于“我讨厌什么”的范围。相反,它们现在代表整个 article 元素的页脚(→ 元数据)。

【讨论】:

  • 可以公平地说 headerfooter 是坏名字,因为它们推断页面上的位置,而不是上下文或目的?
  • @BanksySan:几乎所有元素名称都有问题。 article 不只是文章; ol 并不适用于每个 有序 列表;等等。我猜在header/footer 的情况下,这对 80% 来说是正确的,也就是说:如果网络作者没有阅读这些元素的定义并按照传统理解使用它们对于页眉和页脚,作者可能会故意这样做,至少在大多数情况下是这样。或者换句话说:header/footer 的定义是传统页眉/页脚理解的超集,不是在所有情况下而是在很多情况下。
  • @BanksySan:从历史上看,据说这些新的 HTML5 元素的想法来自分析div 上最常用的class 名称。在将它们添加到规范中之后,它们的定义会随着时间的推移而成熟(当试图将它们的含义形式化时)。这可以解释为什么它不是 100% 匹配对页眉/页脚的传统理解(在许多情况下它是展示性的,因此无论如何这都不适合 HTML)。
【解决方案2】:

通常,在标签中,标题可以包含文章的主题,而页脚可以包含作者和/或撰写时间。

您应该阅读以下链接以获得进一步的解释

header element

footer element

【讨论】:

    【解决方案3】:

    正如这里提到的:http://www.w3schools.com/html/html5_semantic_elements.asp,语义标签用于“清楚地定义网站的不同部分”。他们只是告诉浏览器,也许其他人有些东西在哪里。 例如,它是&lt;div id="header"&gt; 的替代品

    希望能帮到你

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-11
      • 2010-11-26
      • 2015-06-23
      • 2017-12-26
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多