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

如何使用Bootstrap实现可替代navbar-toggler的下拉菜单功能

故障解决方法

核心问题1:JS资源重复加载冲突

你当前引入的bootstrap.bundle.min.js已经内置了Popper.js和Bootstrap核心JS代码,后续额外引入的Popper和单独版Bootstrap JS会造成功能冲突,导致下拉菜单无法正常初始化,这是下拉菜单无法触发的核心原因。

修复方案

删除body末尾以下两行JS引入代码,仅保留bootstrap.bundle.min.js即可:

<!-- 删掉这两行 -->
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.3/dist/umd/popper.min.js" integrity="sha384-W8fXfP3gkOKtndU4JGtKDvXbO53Wy8SZCQHczT5FMiiqmQfUpWbYdTil/SxwZgAN" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.min.js" integrity="sha384-skAcpIdS7UcVUC05LJ9Dxay8AXcDYfBJqt1CJ85S/CFujBsIzCIv+l9liuYLaMQ/" crossorigin="anonymous"></script>

核心问题2:下拉菜单显示隐藏规则不匹配

你CSS中定义的大屏隐藏类是.dropD,但HTML里的下拉菜单使用的类是.dropdown,导致媒体查询规则没有生效,且下拉菜单没有放在导航栏内,位置不符合替代导航折叠按钮的需求。

修复方案

  1. 将下拉菜单移入导航栏的container-fluid容器内,和品牌标识、原有导航项同级,修改后的导航栏代码如下:
<nav class="navbar navbar-light bg-light">
    <div class="container-fluid">
        <a href="#" class="text-decoration-none navbar-brand ms-5 ps-5 mt-0 pt-0">
            <div class="d-flex justify-content-center">
                <img src="/Tabler/logo.png" style="width: 25px; height: 25px;">
                <span class="mx-2 text-dark fw-bold" style="font-family: 'Nunito', sans-serif;">
                    tabler
                </span>
            </div>
        </a>
        <!-- 原有导航项 -->
        <div class="me-5 pe-5" id="TheNav">
            <div>
                <a class="nav-link px-2" href="#" style="font-size: 11px; font-weight: 420;">Demo</a>
            </div>
            <div>
                <a class="nav-link px-2" href="#" style="font-size: 11px; font-weight: 420;">Source Email</a>
            </div>
            <div>
                <a class="nav-link px-2" href="#" style="font-size: 11px; font-weight: 420;">Tabler Email</a>
            </div>
        </div>
        <!-- 新增的下拉菜单,加上dropD类匹配CSS规则 -->
        <div class="dropdown dropD me-5 pe-5">
            <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
              菜单
            </button>
            <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
              <li><a class="dropdown-item" href="#">Demo</a></li>
              <li><a class="dropdown-item" href="#">Source Email</a></li>
              <li><a class="dropdown-item" href="#">Tabler Email</a></li>
            </ul>
        </div>
    </div>
</nav>
  1. 补充小屏下下拉菜单的显示规则,在CSS中添加:
@media screen and (max-width: 580px) {
    .dropD {
        display: block;
    }
}

修改完成后下拉菜单即可正常触发,且会在小屏显示、大屏隐藏,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:45:04