W3Schools.com和我几乎可以确定我记得看到W3C.org的声明,<menu>
应该用于工具栏菜单和列出表单控制命令。
那么,我应该在主菜单中使用哪一个?Nav
还是Menu
?有关系吗?
<menu>
应该用于工具栏菜单和列出表单控制命令。至于主菜单,可以使用Nav
或Menu
。它们都是合适的选择,具体取决于您的个人偏好和项目需求。nav
用于内部链接(a
元素)的分组。通常这意味着链接应该跳转到单独的页面,或在 AJAX 页面中更改内容。点击 nav
项时,预计会发生某种内容变化。
menu
用于控件(a
、input
、button
)的分组。通常这意味着输入应在页面内执行某个功能。点击 menu
项时,预计会发生某种 JavaScript 交互。
nav
:网站的导航栏。
menu
:Web 应用程序的菜单。
<menu>
标签下嵌套 <li>
元素,而无需使用 <ul>
列表。要求是 <menu>
的 type
属性被省略或设置为 "toolbar"
。请参阅 the <li>
element 和 the <menu>
element 规范。 - tomekwi通常情况下,<menu>
用于上下文菜单。
关于此标签,MDN有很好的文档:https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/menu
导航栏在HTML 5中定义。它表示一个命令组。
关于导航栏的注释我没有包含,但我认为最好从标准中自己获取定义。它是页面上链接到其他页面或页面内部部分的部分:具有导航链接的部分。
<nav>
是一个类似于<section>
或<article>
的部分,因此它将出现在您的HTML文档大纲中。因此,我99%的情况下会使用<menu>
。对我来说,<nav>
是<section>
和<menu>
之间的混合体,并增加了<nav>
应专门用于导航的限制,而<menu>
可以用于任何可能被称为菜单的东西(包括导航栏)。因此,大多数导航栏,尽管它们是导航栏,但不符合<nav>
的严格要求,<menu>
更合适。
在我的Web开发职业生涯中,我从未遇到过想要将我的导航栏作为文档大纲的情况。
<menu>
- 99% 的时间,你的导航菜单将是指向其他页面或页面上其他部分的静态链接,这就是规范中 <nav>
的作用。 - Ivan Durstnav
不是一个好的标签选择,因为nav
是一个部分元素,所以它将成为文档大纲的一部分,就像它是一个带有标题和内容的部分一样。这实际上是一个罕见的情况,你希望你的nav
像一个部分一样起作用。menu
只是作为语义替代的建议。我没有看到规范中说它不能被用于这种方式。似乎很合适。但如果你出于某种原因认为菜单只适用于你定义的Web应用程序,那么我建议使用ol
或ul
作为替代。 - Nick Manning<menu>
的支持仍然很差。(难道Chrome真的不支持吗??)此外,您可以通过为另一个元素(例如div或nav)提供role="menu"
属性来实现完全相同的语义。 role属性覆盖任何元素的默认语义。 - brennanyoung