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

Bootstrap 5子菜单点击不向下展开,反而隐藏其他菜单项求助

Bootstrap 5嵌套下拉菜单无法展开问题解决

问题根源

你的代码存在两个核心问题导致子菜单无法正常工作:

  • 嵌套下拉缺少必要父容器类:Bootstrap 5要求嵌套下拉的父<li>必须添加dropdown(或dropend用于右侧展开)类,否则子菜单无法被正确定位和触发。
  • CSS与JS版本不匹配:你引入的Bootstrap CSS是5.1.3版本,但JS是5.3.1版本,版本不一致可能引发组件行为异常。

修复后的完整代码

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <!-- 统一使用5.3.1版本的CSS -->
  <link type="text/css" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css" />
</head>

<body>
  <div class="dropdown border-top">
    <a href="#" class="d-flex align-items-center justify-content-center p-3 link-body-emphasis text-decoration-none dropdown-toggle" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false">
      <img src="https://github.com/mdo.png" alt="mdo" width="24" height="24" class="rounded-circle">
    </a>
    <ul class="dropdown-menu dropdown-menu-end text-small shadow">
      <!-- 给父li添加dropdown类,识别为嵌套下拉容器 -->
      <li class="dropdown">
        <a class="dropdown-item dropdown-toggle" data-bs-toggle="dropdown" href="javascript:void(0)">SubMenu</a>
        <ul class="dropdown-menu dropdown-menu-end">
          <li><a class="dropdown-item" href="#">Item 1</a></li>
        </ul>
      </li>
      <li><a class="dropdown-item" href="#">Settings</a></li>
      <li><a class="dropdown-item" href="#">Profile</a></li>
      <li>
        <hr class="dropdown-divider">
      </li>
      <li><a class="dropdown-item" href="#">Sign out</a></li>
    </ul>
  </div>
  <!-- 保持JS版本与CSS一致 -->
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-HwwvtgBNo3bZJJLYd8oVXjrBZt8cqVSpeBNS5n7C8IVInixGAoxmnlMuBnhbgrkm" crossorigin="anonymous"></script>
</body>

</html>

关键修复点说明

  • 添加父容器类:在包含子菜单的<li>上添加dropdown类,让Bootstrap识别这是嵌套下拉容器;若希望子菜单向右展开,可改用dropend类。
  • 统一版本:将Bootstrap CSS和JS版本统一,避免版本差异引发的兼容性问题。
  • 优化链接行为:将子菜单触发按钮的href="#"改为href="javascript:void(0)",防止点击时页面跳转回顶部。
  • 保留外部关闭逻辑:data-bs-auto-close="outside"属性确保仅点击菜单外部时才关闭,不影响子菜单展开交互。

内容的提问来源于stack exchange,提问作者Osama Diab

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:10:21