W3Schools.com,我敢肯定,我记得看到<menu>
应该用于工具栏菜单和列出表单控制命令的W3C.org状态。
那么,我应该在主菜单中使用哪一个?Nav
或Menu
?有关系吗?
W3Schools.com,我敢肯定,我记得看到<menu>
应该用于工具栏菜单和列出表单控制命令的W3C.org状态。
那么,我应该在主菜单中使用哪一个?Nav
或Menu
?有关系吗?
Answers:
nav
用于内部链接组(a
元素)。通常,这意味着链接应转到单独的页面,或者在AJAX页面的情况下更改内容。单击某项时,期望某些内容更改nav
。
menu
被用于控制组(a
,input
,button
)。通常,这意味着输入应在页面内执行功能。单击某个menu
项目时,需要进行某种形式的javascript交互。
nav
:网站导航。
menu
:Web应用程序的菜单。
这是HTML5Doctor的帖子,nav
其中包含与它的区别menu
(基本上是在实际应用中使用)的部分。看起来像你想要的nav
。
有了<menu>
它,通常用于上下文菜单。
MDN上有很好的文档:https : //developer.mozilla.org/en-US/docs/Web/HTML/Element/menu
获得此答案的最佳位置是他们自己的HTML 5标准。
菜单在HTML 5.1 2nd Edition中定义。
它表示“ ...代表一组命令”。
Nav在HTML 5中定义。
它是“ ...链接到其他页面或页面内各部分的页面部分:具有导航链接的部分”。
有一些关于nav的注释,我没有包括,但认为很重要,但是我认为最好从标准中自己定义。
这篇文章中标记为答案的定义接近正确,但其中包含无关紧要的陈述,使答案本身是错误的。
<nav>
是一个部分(如<section>
或<article>
),因此它将显示在HTML文档的大纲中。因此,我将使用<menu>
99%的时间。对我来说,<nav>
是的混合体<section>
,并<menu>
与补充收缩是<nav>
应该专门用于导航使用,而<menu>
可为任何可能被称为菜单(包括导航栏)。因此,尽管大多数导航栏是导航栏,但它们都不符合的严格要求<nav>
,<menu>
因此更为合适。
在我的Web开发事业中,我从未遇到过让导航栏成为文档大纲一部分的情况。
<menu>
在不是Web应用程序的网站上使用-99%的时间,导航“菜单”将是指向其他页面或页面其他部分的静态链接,这<nav>
是出于目的。规格。
nav
则不是一个好的标记选择,因为它nav
是一个section元素,因此它将成为文档轮廓的一部分,就好像它是具有标题和内容的section一样。实际上,这是一种罕见的情况,您希望自己nav
像一个小节。menu
只是作为语义替换的建议。我在规范中没有看到任何内容表明不能以这种方式使用。似乎适合。但是,如果您出于某种原因认为菜单仅适用于您定义为Web应用程序的菜单,那么我建议ol
还是使用它ul
作为替代。
<menu>
仍缺乏良好的支持。(Chrome确实不支持它吗??)此外,您可以通过将role="menu"
属性提供给另一个元素(例如div或nav)来实现完全相同的语义。角色属性将覆盖任何元素的默认语义。