<导航>或<菜单>(HTML5)


Answers:


162

nav用于内部链接组(a元素)。通常,这意味着链接应转到单独的页面,或者在AJAX页面的情况下更改内容。单击某项时,期望某些内容更改nav

menu被用于控制组(ainputbutton)。通常,这意味着输入应在页面内执行功能。单击某个menu项目时,需要进行某种形式的javascript交互。

nav:网站导航

menu:Web应用程序的菜单


8
有趣的事实:规范允许将<li>元素直接嵌套在<menu>标签下,而无需<ul>列表。要求是将<menu>type属性省略或设置为"toolbar"。见规格<li>元素<menu>元素
tomekwi

有人可以<menu>在W3C HTML5规范之一中指出我吗?我在WHAT WG版本中找到它,但在最新的W3C HTML 5.3草案中却找不到。
Garret Wilson



1

获得此答案的最佳位置是他们自己的HTML 5标准。

菜单HTML 5.1 2nd Edition中定义。

它表示“ ...代表一组命令”。


NavHTML 5中定义。

它是“ ...链接到其他页面或页面内各部分的页面部分:具有导航链接的部分”。

有一些关于nav的注释,我没有包括,但认为很重要,但是我认为最好从标准中自己定义。

这篇文章中标记为答案的定义接近正确,但其中包含无关紧要的陈述,使答案本身是错误的。


0

<nav>是一个部分(如<section><article>),因此它将显示在HTML文档的大纲中。因此,我将使用<menu>99%的时间。对我来说,<nav>是的混合体<section>,并<menu>与补充收缩是<nav>应该专门用于导航使用,而<menu>可为任何可能被称为菜单(包括导航栏)。因此,尽管大多数导航栏是导航栏,但它们都不符合的严格要求<nav><menu>因此更为合适。

在我的Web开发事业中,我从未遇到过让导航栏成为文档大纲一部分的情况。


1
这是不正确的。您应该极少(如果曾经)<menu>在不是Web应用程序的网站上使用-99%的时间,导航“菜单”将是指向其他页面或页面其他部分的静态链接,这<nav>是出于目的。规格。
伊万·杜斯特

@IvanDurst,我的意思是,如果仅构建静态链接列表,nav则不是一个好的标记选择,因为它nav是一个section元素,因此它将成为文档轮廓的一部分,就好像它是具有标题和内容的section一样。实际上,这是一种罕见的情况,您希望自己nav像一个小节。menu只是作为语义替换的建议。我在规范中没有看到任何内容表明不能以这种方式使用。似乎适合。但是,如果您出于某种原因认为菜单仅适用于您定义为Web应用程序的菜单,那么我建议ol还是使用它ul作为替代。
尼克·曼宁,2015年

根据此处的兼容性表,此时<menu>仍缺乏良好的支持。(Chrome确实不支持它吗??)此外,您可以通过将role="menu"属性提供给另一个元素(例如div或nav)来实现完全相同的语义。角色属性将覆盖任何元素的默认语义。
brennanyoung
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.