跳到主要内容

UI 组件 · 导航

菜单栏

Menubar

也叫:菜单条、应用菜单栏、文件菜单、Menu Bar、App Menu、Application Menu

桌面软件和在线编辑器顶部那一行「文件、编辑、视图、帮助」,点开每一项弹出一列命令,用来收纳大量功能。

点「标注」看每个部分叫什么。

怎么跟 AI 说

改成你的业务内容再发

在编辑器顶部做一行菜单栏(role="menubar",高 32px):「文件、编辑、视图、插入、帮助」五个菜单标题,点击标题向下展开菜单,菜单打开后鼠标移到其他标题上直接切换。「编辑」菜单包含「撤销 ⌘Z」「重做 ⇧⌘Z」、分隔线、「剪切 ⌘X」「复制 ⌘C」「粘贴 ⌘V」、分隔线、「查找和替换 ⌘F」,快捷键右对齐、灰色;「选择性粘贴」带右箭头,悬停展开二级菜单。暂时不可用的命令置灰。支持键盘:左右键切换标题,上下键移动选项,回车执行,Esc 关闭。

发给

01判断

你的内容是这样吗?

对照两列,确认菜单栏是不是你要找的。

符合这些情况,用菜单栏

  • 在线文档、表格、设计工具、代码编辑器这类命令很多的桌面工具
  • 需要把几十上百个功能按类别收纳,同时让用户查到对应的快捷键
  • 模仿桌面软件习惯的 Web 应用,用户已经熟悉「文件 / 编辑 / 视图」的布局

是这些情况,换成别的

  • 普通网站、官网、后台系统的页面跳转

  • 手机等触屏设备,悬停切换和密集的菜单都不好用

  • 只有三五个操作,直接做成工具栏按钮更快

拿不准?上传页面截图,页面分析会逐块判断该用什么布局。

02避坑

常见坏用法

看起来能用,其实会给用户添麻烦。

  1. 01

    把网站的页面链接做成菜单栏,每点一项先弹出一列再跳转,多了一步

  2. 02

    保存、撤销这些最常用的操作只放在菜单里,没有工具栏按钮也没有快捷键提示

  3. 03

    菜单打开后移到别的标题不会切换,每次都要先关掉再点

03识别

怎么认出它

先看整体结构,再对照几个一眼能认出的特征。

结构

由一行横排的菜单标题和每个标题下展开的菜单组成,菜单里是命令项、快捷键提示、分隔线和二级菜单。

组成部分点一下,在上面的线框里标出来

识别特征

  1. 1界面最顶部一行紧凑的短文字「文件 编辑 视图 帮助」,没有按钮边框
  2. 2点开某一项,下方弹出一列命令,右侧是灰色、对齐的快捷键
  3. 3常在标题栏下方、工具栏上方,再往下是文档或画布编辑区

04解释

详细解释

菜单栏是一行横排的菜单标题,就像 Word、Figma、VS Code、在线表格顶部的「文件 编辑 视图 插入 格式 帮助」。点其中一项会向下展开一列命令,命令旁边常写着快捷键(⌘S、Ctrl+Z),带箭头的项还能展开二级菜单。菜单打开后,鼠标在各个标题之间滑动,展开的菜单会跟着切换。它适合功能很多的工具类应用,把上百个命令按类别收好,用户也能从这里顺便记住快捷键。

它常被和 顶部导航栏 混淆:导航栏的每一项是跳到另一个页面的链接;菜单栏每一项展开的是对当前文档执行的命令,页面不跳转。和 工具栏 的区别:工具栏把最常用的操作做成一排图标按钮直接点;菜单栏收纳全部命令,要点开才看得到,两者常上下叠放。单独一个「更多」按钮弹出的一列选项是 下拉菜单,一整行这样的菜单才叫菜单栏。

普通网站、后台管理系统不需要菜单栏,用导航栏就够了。做的时候要支持键盘:容器用 role="menubar",左右方向键在标题之间移动,上下方向键在命令之间移动,Esc 关闭;命令旁边写上对应的快捷键。

开发者信息
术语 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。

  • menubar
  • menu-bar
  • file-menu
  • editor-menu
  • menu-strip
组件名

React / Vue 开发模式下读到的组件名,不区分大小写,会去掉 El、Ant、Mui 这类组件库前缀。

  • Menubar
  • MenubarMenu
  • MenubarTrigger
  • AppMenuBar
语义标签和角色

弱信号,要和其他线索一起才算识别出来。

  • role=menubar
结构特征

根据元素的排列和样式算出来的特征,只用来加分,单独不判定。

  • 重复子项
优先级
2 · 同一层有多条命中时,优先级高的胜出
版本
v2 · 更新于 2026/09/30