Bootstrap 5导航栏点击切换按钮无法展开问题求助
问题原因与修复方案
核心问题是Bootstrap版本不兼容:你代码里用了Bootstrap 5的属性(data-bs-toggle、data-bs-target),但引入的却是Bootstrap 4的CSS和JS文件,两者不匹配导致交互失效。
修复步骤(二选一即可)
方案1:切换到Bootstrap 5资源(推荐,符合你使用Bootstrap 5的需求)
替换头部的Bootstrap CSS链接,以及底部的JS脚本(Bootstrap 5不再依赖jQuery):
<!-- 替换原Bootstrap CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css"> <!-- 替换原JS脚本 --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
同时,移除搜索栏外层多余的collapse navbar-collapse(嵌套的collapse会导致布局异常),修改后的导航栏部分代码:
<nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <div class="container-fluid"> <a class="navbar-brand">Manga Book Store</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item"> <a class="nav-link active" aria-current="page" href="{% url 'home' %}">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Dropdown </a> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="#">Action</a></li> <li><a class="dropdown-item" href="#">Another action</a></li> <li><hr class="dropdown-divider"></li> <li><a class="dropdown-item" href="#">Something else here</a></li> </ul> </li> <li class="nav-item"> <a class="nav-link disabled">Disabled</a> </li> </ul> <!-- 移除多余的collapse navbar-collapse --> <form class="d-flex" role="search" method=POST action="{% url 'search_manga' %}"> {% csrf_token %} <input class="form-control me-2" type="search" placeholder="Search Manga" aria-label="Search" name="searched"> <button class="btn btn-outline-success" type="submit">Search</button> </form> </div> </div> </nav>
方案2:保留Bootstrap 4,修改属性格式
如果你想继续用Bootstrap 4,把按钮里的data-bs-toggle改成data-toggle,data-bs-target改成data-target即可:
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>
同时也要移除搜索栏外层多余的collapse navbar-collapse,避免布局问题。
内容的提问来源于stack exchange,提问作者Alec Smith
相关产品推荐
相关产品推荐

