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)来实现完全相同的语义。角色属性将覆盖任何元素的默认语义。