你能有那么多吗<;导航>';在HTML5文档中,您想要什么?

你能有那么多吗<;导航>';在HTML5文档中,您想要什么?,html,Html,我喜欢HTML5标准中的新标签。我可以多次使用它们吗 比如3个标签,或者两个标签,我可以发明像这样的新标签吗 在xhtml中,我有: <div class="nav-wrap"> <div class="nav"> ... </div> </div> ... 所以我可以这样做: <nav class="wrap"> <nav> <!-- can <nav> have <li>

我喜欢HTML5标准中的新标签。我可以多次使用它们吗

比如3个
标签,或者两个
标签,我可以发明像
这样的新标签吗

在xhtml中,我有:

<div class="nav-wrap">
 <div class="nav">
   ...
 </div>
</div>

...
所以我可以这样做:

<nav class="wrap">
  <nav>  <!-- can <nav> have <li>'s ? -->
  ...
  </nav>
</nav>

...

中定义了
元素,但未定义
元素。您可以使用任意数量的
元素(只要它们不是嵌套的),但其他元素必须提供DTD,并希望用户使用的浏览器足够灵活,可以接受新元素

我建议不要定义新元素,只使用现有的语义元素来创建您想要的效果

已经足够好了,如果您将主要内容包装在
中,将被视为次要内容,这有效地提醒浏览器,该区域不是页眉、页脚或主要内容,在大多数网站上相当于侧边栏

然而,在大多数情况下,

aside元素表示页面的一部分,该部分由与aside元素周围的内容相切的内容组成,可以将其视为独立于该内容在印刷字体中,这些部分通常表示为边栏


Emphasis mine

导航中嵌套无序的链接列表更常见:

<nav class="wrap">
  <ul>
    <li>...
  </ul>
</nav>

  • 。。。
您可以根据需要在页面中包含任意多的
nav
元素,但不需要在
nav
中包装每个链接或链接集-只有“主要导航”应该在
nav
元素中。有一个

对于侧边栏,没有必要发明自己的元素,请使用

你可以发明自己的元素,在兼容HTML5的浏览器中仍然可以使用标记,只要它们遵循规则,你就不在乎你使用什么标记名,但是你就不会编写HTML5了,所以这是毫无意义的。我建议您通读本规范开头的部分,尤其是bit“可能是打字错误的情况”:

当用户输入一个简单的打字错误时,它是 如果可以捕获错误,则会很有用 尽早,因为这样可以节省作者的时间 大量的调试时间。这 因此,规范通常 认为使用元素是错误的 名称、属性名称等, 与中定义的名称不匹配 本规范


“nav”元素应该在有“主”导航的地方使用,通常在网站的标题中,但也可以在用户可以导航当前页面的地方使用

通常不需要将它放在页脚中(因为它通常不被认为是您的主要导航),尽管它不会造成真正的伤害

ZZBOV的答案并不完全正确,所以让我试着给出一个更准确的例子

作为“侧边栏”的替代,您应该使用“aside”标记,它通常包含次要内容(如侧边导航、链接、广告等)


这在语义上不是一个边栏,远远不是。div元素用作样式或JavaScript的钩子,没有语义意义,这就是为什么引入了'aside'元素,请使用它

如果您只需要一个包装器来设计样式,那么div是完美的(甚至是首选的)

根据经验,HTML应该包含描述内容的元素。你通常可以大声读出来,这会有意义的

例如:“我的页面侧面有一个导航元素列表”,可以翻译为:

<aside>
  <nav>
    <h1>Navigation</h1>
    <ul>
      <li><a href="/someplace">Link to someplace</li>
      <li><a href="/someplace-else">Link to someplace else</li>
    </ul>
  </nav>
</aside>

航行
  • 链接到某个地方
  • 链接到其他地方
总结一下:一般来说,您在主要导航区域使用nav元素,比如网站标题中的导航,有时也使用导航来导航当前页面

页面中不是主要内容(但可能相关)的部分通常放在“搁置”元素中


希望这有帮助

您的问题是否与任何特定的搜索引擎和/或应用程序相关?除此之外,nav标记用于包含链接,因此不能嵌套。但是你可以有你需要的导航标签。理想情况下,我们在页面中有两个导航标记,一个在页眉部分,另一个在页脚部分。参见这里,
aside
并不总是侧边栏的语义正确的元素。这是正确的,但是div无论如何都没有语义。侧边栏作为一个整体不需要新元素(div可以控制它的外观),但是侧边栏中的内容可能会受益于诸如aside和nav之类的元素。
div
没有隐式语义,但是
[class]
有隐式语义
class=“sidebar”
赋予
div
某种意义,因为它现在属于侧边栏组。这些语义通常对最终用户是透明的,但对于一般的web开发来说很重要。当讨论包含
元素时,确定其有用性的一个因素是来自使用类的现有网站的数据,如
.main
.content
,等等。大部分使用的元素是
div
s,但它们仍然具有语义。我理解你的意思,但在这种情况下,我不同意“语义”这个词。在用户和浏览器级别上,div和span不传递任何语义,不管它们的类是什么。对于开发人员来说,这是不同的,但它只表达“语义”,作为让其他开发人员知道div/span的用途的一种方式。主要元素主要是为了将实际的主要内容与流的其余部分分离开来(没有双关语的意思),这是一个很好的例子-
<aside>
  <nav>
    <h1>Navigation</h1>
    <ul>
      <li><a href="/someplace">Link to someplace</li>
      <li><a href="/someplace-else">Link to someplace else</li>
    </ul>
  </nav>
</aside>