Bootstrap 5 下拉菜单组件
Bootstrap 5 下拉菜单是灵活的交互组件,用于显示可折叠的内容列表。
下拉菜单组件的主要特点:
- 多种触发方式 - 点击、悬停等多种触发方式
- 灵活的方向 - 上下左右多个展开方向
- 丰富的内容 - 支持链接、表单、文本等内容
- 响应式设计 - 自动适应不同屏幕尺寸
- JavaScript控制 - 支持动态显示和隐藏
下拉菜单示例
基本下拉菜单
<!-- 按钮下拉菜单 -->
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
下拉菜单按钮
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">操作</a></li>
<li><a class="dropdown-item" href="#">另一个操作</a></li>
<li><a class="dropdown-item" href="#">其他操作</a></li>
</ul>
</div>
<!-- 链接下拉菜单 -->
<div class="dropdown">
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
链接下拉菜单
</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">操作</a></li>
<li><a class="dropdown-item" href="#">另一个操作</a></li>
<li><a class="dropdown-item" href="#">其他操作</a></li>
</ul>
</div>
不同样式的下拉菜单
下拉菜单变体
分割按钮下拉菜单
创建分割按钮,一部分是操作,一部分是下拉菜单。
不同大小的下拉菜单
使用按钮大小类控制下拉菜单的大小。
<!-- 分割按钮下拉菜单 -->
<div class="btn-group">
<button type="button" class="btn btn-danger">操作</button>
<button type="button" class="btn btn-danger dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
<span class="visually-hidden">切换下拉菜单</span>
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">操作</a></li>
<li><a class="dropdown-item" href="#">另一个操作</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">其他操作</a></li>
</ul>
</div>
<!-- 不同大小的下拉菜单 -->
<div class="dropdown">
<button class="btn btn-primary btn-sm dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
小型下拉菜单
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">操作</a></li>
<li><a class="dropdown-item" href="#">另一个操作</a></li>
<li><a class="dropdown-item" href="#">其他操作</a></li>
</ul>
</div>
向上展开的下拉菜单
使用 .dropup 类创建向上展开的下拉菜单。
下拉菜单方向
右侧展开
使用 .dropend 类创建向右展开的下拉菜单。
左侧展开
使用 .dropstart 类创建向左展开的下拉菜单。
<!-- 向上展开 -->
<div class="dropup">
<button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
向上展开下拉菜单
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">操作</a></li>
<li><a class="dropdown-item" href="#">另一个操作</a></li>
<li><a class="dropdown-item" href="#">其他操作</a></li>
</ul>
</div>
<!-- 向右展开 -->
<div class="dropend">
<button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
向右展开
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">操作</a></li>
<li><a class="dropdown-item" href="#">另一个操作</a></li>
<li><a class="dropdown-item" href="#">其他操作</a></li>
</ul>
</div>
<!-- 向左展开 -->
<div class="dropstart">
<button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
向左展开
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">操作</a></li>
<li><a class="dropdown-item" href="#">另一个操作</a></li>
<li><a class="dropdown-item" href="#">其他操作</a></li>
</ul>
</div>
方向组合
在同一页面中使用不同方向的下拉菜单。
下拉菜单内容
带图标的下拉菜单
在下拉菜单项中添加图标。
带标题的下拉菜单
在下拉菜单中添加标题和分隔符。
<!-- 带图标的下拉菜单 -->
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
带图标菜单
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item dropdown-item-with-icon" href="#">
<i class="bi bi-pencil"></i> 编辑
</a></li>
<li><a class="dropdown-item dropdown-item-with-icon" href="#">
<i class="bi bi-trash"></i> 删除
</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item dropdown-item-with-icon" href="#">
<i class="bi bi-download"></i> 下载
</a></li>
</ul>
</div>
<!-- 带标题的下拉菜单 -->
<div class="dropdown">
<button class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
带标题菜单
</button>
<ul class="dropdown-menu">
<li><h6 class="dropdown-header">用户操作</h6></li>
<li><a class="dropdown-item" href="#">个人资料</a></li>
<li><a class="dropdown-item" href="#">设置</a></li>
<li><hr class="dropdown-divider"></li>
<li><h6 class="dropdown-header">系统操作</h6></li>
<li><a class="dropdown-item" href="#">帮助</a></li>
<li><a class="dropdown-item" href="#">关于</a></li>
</ul>
</div>
禁用的菜单项
使用 .disabled 类禁用下拉菜单项。
导航栏中的下拉菜单
在导航栏中使用下拉菜单创建多级导航。
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">网站名称</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavDropdown">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">首页</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
产品
</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">产品 A</a></li>
<li><a class="dropdown-item" href="#">产品 B</a></li>
<li><a class="dropdown-item" href="#">产品 C</a></li>
</ul>
</li>
<!-- 更多导航项 -->
</ul>
</div>
</div>
</nav>
高级下拉菜单
巨型菜单 (Mega Menu)
创建包含丰富内容的大型下拉菜单。
自定义样式下拉菜单
使用自定义CSS创建独特的下拉菜单样式。
交互下拉菜单演示
动态下拉菜单生成器
自定义创建下拉菜单。
JavaScript 控制
使用JavaScript控制下拉菜单的显示和隐藏。
下拉菜单使用最佳实践
用户体验
- 保持菜单项简洁明了
- 使用合理的分组和分隔符
- 为重要操作提供明确的视觉指示
- 确保菜单在不同设备上易于操作
内容组织
- 根据功能或类别对菜单项进行分组
- 使用标题和分隔符提高可读性
- 为相关操作提供视觉关联
- 避免在菜单中放置过多内容
可访问性
- 为所有下拉菜单提供适当的ARIA属性
- 确保键盘导航正常工作
- 为屏幕阅读器用户提供清晰的导航指示
- 考虑使用视觉隐藏的文本提供额外信息
响应式设计
- 在不同屏幕尺寸上测试下拉菜单
- 确保菜单在小屏幕上仍然可用
- 考虑在小屏幕上使用全宽菜单
- 使用合适的断点调整菜单布局