Bootstrap导航栏汉堡菜单点击无下拉显示问题求助
问题诊断与修复
你的汉堡菜单点击后仅图标变化但无下拉菜单显示,核心原因是导航栏内部的两个<ul>标签错误地重复添加了collapse navbar-collapse类。
Bootstrap的折叠组件逻辑是通过控制带有collapse类的容器的显示/隐藏来实现的,你已经在最外层的<div>上设置了collapse navbar-collapse并绑定了汉堡按钮的data-bs-target,但内部的<ul>又重复添加了这个类,导致折叠功能冲突——外层容器展开后,内部的<ul>仍因为自带的collapse类处于隐藏状态,所以看不到菜单内容。
修复后的完整代码
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>NRC Ranking</title> <!-- Bootstrap 5无需依赖jQuery,可移除下面的jQuery引入 --> <!-- <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha384-KyZXEAg3QhqLMpG8r+JvJAK8YtahYht1d+K/pv7C5mCVv4VFLw7GMzzRdfAvPEYB" crossorigin="anonymous"></script> --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous"> <!-- bootstrap.bundle.min.js已经包含了popper,可移除单独的popper引入 --> <!-- <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3" crossorigin="anonymous"></script> --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"></script> <link rel="stylesheet" href="css/styles.css"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Bellefair&family=Mate+SC&family=Quintessential&display=swap" rel="stylesheet"> </head> <body> <!--Navbar--> <nav class="navbar navbar-expand-lg bg-dark"> <div class="centered-logo"> <a class="nav-link" href="#"> <img class="twlogo" src="images/twlogo.png" alt="twisted wonderland logo"> </a> </div> <button class="custom-hamburger navbar-toggler ms-auto" type="button" data-bs-toggle="collapse" data-bs-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation"> <span class="custom-hamburger navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarTogglerDemo02"> <!-- 移除ul标签上的collapse navbar-collapse类 --> <ul class="navbar-nav justify-content-center left-links"> <li class="nav-item"><a class="nav-link" href="#">World</a></li> <li class="nav-item"><a class="nav-link" href="#">Characters</a></li> </ul> <!-- 移除ul标签上的collapse navbar-collapse类 --> <ul class="navbar-nav justify-content-center right-links"> <li class="nav-item"><a class="nav-link" href="#">Tierlist</a></li> <li class="nav-item"><a class="nav-link" href="#">Media</a></li> </ul> </div> </nav> </body> </html>
额外优化建议
- 移除冗余依赖:Bootstrap 5的
bootstrap.bundle.min.js已经内置了Popper.js,无需单独引入;同时Bootstrap 5不再依赖jQuery,可移除jQuery的引入,避免潜在的版本冲突。 - 检查自定义样式:确认
styles.css中没有覆盖Bootstrap的折叠组件样式,比如不要给.collapse或.navbar-collapse添加display: none !important这类强制隐藏的规则,否则会干扰组件的正常切换。
内容的提问来源于stack exchange,提问作者Stella
相关产品推荐
相关产品推荐

