UI 组件 · 导航
菜单栏
Menubar
也叫:菜单条、应用菜单栏、文件菜单、Menu Bar、App Menu、Application Menu
桌面软件和在线编辑器顶部那一行「文件、编辑、视图、帮助」,点开每一项弹出一列命令,用来收纳大量功能。
点「标注」看每个部分叫什么。
怎么跟 AI 说
改成你的业务内容再发在编辑器顶部做一行菜单栏(role="menubar",高 32px):「文件、编辑、视图、插入、帮助」五个菜单标题,点击标题向下展开菜单,菜单打开后鼠标移到其他标题上直接切换。「编辑」菜单包含「撤销 ⌘Z」「重做 ⇧⌘Z」、分隔线、「剪切 ⌘X」「复制 ⌘C」「粘贴 ⌘V」、分隔线、「查找和替换 ⌘F」,快捷键右对齐、灰色;「选择性粘贴」带右箭头,悬停展开二级菜单。暂时不可用的命令置灰。支持键盘:左右键切换标题,上下键移动选项,回车执行,Esc 关闭。
发给
01判断
你的内容是这样吗?
对照两列,确认菜单栏是不是你要找的。
02避坑
常见坏用法
看起来能用,其实会给用户添麻烦。
- 01
把网站的页面链接做成菜单栏,每点一项先弹出一列再跳转,多了一步
- 02
保存、撤销这些最常用的操作只放在菜单里,没有工具栏按钮也没有快捷键提示
- 03
菜单打开后移到别的标题不会切换,每次都要先关掉再点
03识别
怎么认出它
先看整体结构,再对照几个一眼能认出的特征。
结构
由一行横排的菜单标题和每个标题下展开的菜单组成,菜单里是命令项、快捷键提示、分隔线和二级菜单。
组成部分点一下,在上面的线框里标出来
识别特征
- 1界面最顶部一行紧凑的短文字「文件 编辑 视图 帮助」,没有按钮边框
- 2点开某一项,下方弹出一列命令,右侧是灰色、对齐的快捷键
- 3常在标题栏下方、工具栏上方,再往下是文档或画布编辑区
04解释
详细解释
菜单栏是一行横排的菜单标题,就像 Word、Figma、VS Code、在线表格顶部的「文件 编辑 视图 插入 格式 帮助」。点其中一项会向下展开一列命令,命令旁边常写着快捷键(⌘S、Ctrl+Z),带箭头的项还能展开二级菜单。菜单打开后,鼠标在各个标题之间滑动,展开的菜单会跟着切换。它适合功能很多的工具类应用,把上百个命令按类别收好,用户也能从这里顺便记住快捷键。
它常被和 顶部导航栏 混淆:导航栏的每一项是跳到另一个页面的链接;菜单栏每一项展开的是对当前文档执行的命令,页面不跳转。和 工具栏 的区别:工具栏把最常用的操作做成一排图标按钮直接点;菜单栏收纳全部命令,要点开才看得到,两者常上下叠放。单独一个「更多」按钮弹出的一列选项是 下拉菜单,一整行这样的菜单才叫菜单栏。
普通网站、后台管理系统不需要菜单栏,用导航栏就够了。做的时候要支持键盘:容器用 role="menubar",左右方向键在标题之间移动,上下方向键在命令之间移动,Esc 关闭;命令旁边写上对应的快捷键。
开发者信息术语 ID、DOM 线索、识别优先级
- 术语 ID
component-menubar- DOM 选择器
插件在本地识别时匹配这些 CSS 选择器(标签、ARIA role、常见组件库 class)。
[role="menubar"]:not(.el-menu):not(nav *)[data-slot="menubar"].menubar.menu-bar
- 类名关键词
类名、id、data-testid 拆成单词后连续匹配,例如 page-header、PageHeader_root__x7a、pageHeader 都拆成 page、header。
menubarmenu-barfile-menueditor-menumenu-strip
- 组件名
React / Vue 开发模式下读到的组件名,不区分大小写,会去掉 El、Ant、Mui 这类组件库前缀。
MenubarMenubarMenuMenubarTriggerAppMenuBar
- 语义标签和角色
弱信号,要和其他线索一起才算识别出来。
role=menubar
- 结构特征
根据元素的排列和样式算出来的特征,只用来加分,单独不判定。
重复子项
- 优先级
- 2 · 同一层有多条命中时,优先级高的胜出
- 版本
- v2 · 更新于 2026/09/30