跳到主要内容
前端术语库

下拉菜单

Dropdown Menu

UI 组件也叫:Dropdown、更多菜单、操作菜单、弹出菜单

一句话:点击或悬停某个按钮后弹出的一列选项,用来收纳一组相关的操作或跳转链接,选完即收起。

详细解释

下拉菜单平时只露出一个触发按钮,例如「更多」「⋯」或用户头像,点击后在按钮下方弹出一列菜单项,选择其中一项就执行对应操作并自动收起。它适合收纳次要操作,比如表格行里的「编辑、复制、删除」,或头像下的「个人设置、退出登录」。

它常被和下拉选择混淆:下拉选择是表单控件,选中的值会显示在框里并随表单提交;下拉菜单点完就执行动作,不保留选中状态。它也不同于顶部导航栏,导航栏是常驻在页面上的主入口,下拉菜单只是临时弹出的一组选项。

菜单项较多时用分割线分组,删除这类危险操作放在最后,并用醒目的颜色区分。

示例

灰度线框示意,只表达结构,不代表具体视觉风格。

怎么跟 AI 说

可以直接贴给 Cursor、Claude Code 等工具,把里面的业务内容换成你自己的。

表格每行最右侧放一个「⋯」图标按钮,点击后在按钮下方弹出下拉菜单,包含「编辑」「复制」「导出」,分割线下面是红色的「删除」。菜单宽 160px、白底带阴影,悬停项背景变浅灰。点击菜单外部或按 Esc 键收起,支持用方向键上下切换选项。

结构与适用场景

结构描述

由触发元素(按钮、图标或文字链接)和弹出的菜单浮层组成,浮层内是菜单项,可带图标、分割线、分组标题和二级子菜单。

适用场景

  • 某个对象有 3 个以上次要操作、全部平铺成按钮会显得拥挤时,例如表格行的更多操作
  • 在头像或账号名下收纳个人设置、切换账号、退出登录等入口时
  • 导航栏某个栏目下有几个子页面,需要悬停或点击展开时

不适用场景

  • 在表单里让用户选一个值并提交时,应该用下拉选择
  • 只有一两个操作时,直接放按钮更直观,不必藏起来
  • 页面上最常用的主要操作,藏进菜单会多一次点击,应该做成显眼的按钮

常见坏用法

  • 把表单里的选值控件做成下拉菜单,选完后框里不显示已选的值
  • 页面上唯一的主要操作也藏进「更多」菜单,用户找不到
  • 菜单里堆了几十个选项又没有搜索,要滚动很久才能找到

识别特征

  • 按钮或图标下方弹出的一个带阴影的小浮层
  • 浮层里是一列纵向排列的文字选项,可能带图标
  • 选项之间偶尔有分割线,最后一项常是红色的删除

DOM 线索

插件本地识别时匹配的 CSS 选择器(标签、ARIA role、常见组件库 class)。

  • [role="menu"]:not(.ant-menu-root):not(.n-menu):not(nav *):not(aside *)
  • .dropdown-menu
  • .ant-dropdown-menu
  • .el-dropdown-menu
  • [class*="MuiMenu-paper"]
  • .arco-dropdown
  • .t-dropdown
  • .n-dropdown-menu
  • [data-slot="dropdown-menu-content"]