You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Bootstrap 5在Angular 12中实现多级下拉菜单

Angular 12 + Bootstrap 5 多级下拉菜单实现方案

Bootstrap 5 原生仅支持单级下拉,需要额外添加自定义样式实现多级菜单的层级展开逻辑。

前置准备

确保你已经有可用的 Angular 12 项目,未创建项目可先执行命令初始化:
ng new multi-dropdown-demo --version 12

步骤1:安装依赖包

执行命令安装 Bootstrap 5 及依赖的 Popper.js:
npm install bootstrap@5 @popperjs/core --save

步骤2:配置项目引入 Bootstrap 资源

打开项目根目录的 angular.json 文件,在 architect > build > options 节点下添加如下配置,引入Bootstrap的样式和脚本资源:

"styles": [
  "node_modules/bootstrap/dist/css/bootstrap.min.css",
  "src/styles.css"
],
"scripts": [
  "node_modules/@popperjs/core/dist/umd/popper.min.js",
  "node_modules/bootstrap/dist/js/bootstrap.min.js"
]

步骤3:编写多级菜单模板代码

在需要使用下拉菜单的组件HTML文件中,添加如下层级结构代码,可根据需求扩展菜单层级:

<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" href="#">一级菜单A</a></li>
    <!-- 带二级子菜单的一级菜单 -->
    <li class="dropdown-submenu">
      <a class="dropdown-item dropdown-toggle" href="#">一级菜单B(含子菜单)</a>
      <ul class="dropdown-menu">
        <li><a class="dropdown-item" href="#">二级菜单B1</a></li>
        <!-- 带三级子菜单的二级菜单 -->
        <li class="dropdown-submenu">
          <a class="dropdown-item dropdown-toggle" href="#">二级菜单B2(含子菜单)</a>
          <ul class="dropdown-menu">
            <li><a class="dropdown-item" href="#">三级菜单B21</a></li>
            <li><a class="dropdown-item" href="#">三级菜单B22</a></li>
          </ul>
        </li>
      </ul>
    </li>
    <li><a class="dropdown-item" href="#">一级菜单C</a></li>
  </ul>
</div>

步骤4:添加多级菜单适配样式

打开全局样式文件 src/styles.css,添加如下自定义样式,实现子菜单悬浮触发和定位逻辑:

.dropdown-submenu {
  position: relative;
}

/* 子菜单默认定位到父菜单右侧 */
.dropdown-submenu .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  display: none;
}

/* 悬浮父菜单时展示子菜单 */
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}

/* 移动端适配:避免子菜单右拉超出屏幕,可选配置 */
@media (max-width: 768px) {
  .dropdown-submenu .dropdown-menu {
    left: 0;
    top: 100%;
    margin-left: 1rem;
  }
}

步骤5:功能验证

执行命令启动项目:ng serve,访问页面即可测试多级下拉菜单的展开效果。

内容的提问来源于stack exchange,提问作者Ratandeep Arunkumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:45:02