【问题标题】:Semantic differences between <nav> and <aside> for navigation in HTML [closed]<nav> 和 <aside> 在 HTML 中导航的语义差异 [关闭]
【发布时间】:2017-03-16 09:09:57
【问题描述】:

据我所知,将导航链接和元素放在&lt;nav&gt; 中是语义化的。但是,我也看到很多人将他们的导航链接和元素放在&lt;aside&gt; 中,而他们的导航内容位于页面的主要内容旁边。

在我目前开发网站的方式中,我在 &lt;header&gt; 中有“入住”、“退房”和“现在预订”,在左侧的 &lt;nav&gt; 中有多个导航链接页面的一侧。

我应该将导航内容保存在&lt;nav&gt; 中还是将其放在&lt;aside&gt; 中?哪一个在语义上正确且最容易理解?

【问题讨论】:

  • HTML5 best practices; section/header/aside/article tags。我知道,没有提到nav,但它告诉你想要aside
  • @Mike McCaughan 我知道 Aside 或 Nav 是什么,问题是我对使用什么感到有点困惑,因为大多数人使用 side 作为左侧的主导航。
  • 这完全是基于意见的,这是题外话。如果您知道它们是什么,并且解决方案必须对您有意义,那么您必须做出决定。
  • 我不会将此问题视为“基于意见”而放弃。对 HTML 语义的正确理解是高度相关的,从答案中可以清楚地看出,这不是“做适合你的事情”。

标签: html accessibility semantic-markup


【解决方案1】:

这就是我要做的:

红色框是aside,里面的蓝色框是nav

这里是a good blog post,涵盖了这些标签的语义。 这取决于您的布局。 aside 通常是一个小列,位于布局的主要内容旁边。 nav 将是用于导航目的的任何链接列表。我通常认为aside 是一个更大的容器,nav 只是一个链接列表。这都是非常语义化和非常基于意见的。

【讨论】:

  • 这看起来是一个不错的解决方案。但是,如果我想链接外部网站,例如“评论”或“活动”,该怎么办。据我所知,您不能将其用于外部链接。那么使用 div 更安全?
  • Aside 仍然可以正常工作。
  • Aside 仍然可以正常工作,但不是最佳语义解决方案。仍然是一个很好的答案!
【解决方案2】:

在这种情况下你不应该使用aside

这是您的导航,所以nav element 显然是这里的最佳选择。

使用aside element 是没有意义的,因为某些内容会显示在侧边栏中。是否使用 aside 的选择应取决于内容及其在上下文中的用途,而不是 CSS。

aside 用于“切向相关”的内容,但主导航几乎不仅仅与文档“切向”相关。

【讨论】:

  • 这很有意义。我之前以为aside 专门用于侧边栏导航。
  • @unor,你会在
  • 好答案!我会在 ASIDE 标记中放置广告,因为您不知道它的具体外观,并且它与您的网站无关。
  • 在旁边的标签上睁开眼睛 o_O。
  • "aside - 用于切线相关的内容。仅仅因为某些内容出现在主要内容的左侧或右侧并不足以使用side元素。问问自己是否在side内的内容可以在不降低主要内容的含义的情况下删除。拉引号是切线相关内容的示例。 stackoverflow.com/a/6527766/1066234
猜你喜欢
  • 2015-10-08
  • 2010-10-06
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多