Bootstrap+Flask导航栏小屏不显示汉堡菜单问题求助
解决Bootstrap Material Design导航栏小屏幕不显示的问题
嘿,我看到你的导航栏在小屏幕上没法正常显示了——这在Bootstrap里是个很常见的小疏漏,核心问题是你漏掉了小屏幕下的折叠触发按钮(汉堡菜单),同时还要确保相关的JS资源正确引入。让我一步步帮你搞定:
1. 补上折叠触发按钮
Bootstrap的navbar-expand-lg类设定了导航栏在大屏幕(lg及以上)才自动展开,小屏幕会折叠内容,但你现在的代码里只有被折叠的导航内容(navbar-collapse),却没有触发折叠/展开的按钮,所以小屏幕下导航项就直接藏起来,用户根本没法打开它。
把你的导航栏代码改成这样:
<!-- Navbar --> <nav class="navbar navbar-expand-lg navbar-dark purple"> <div class='container'> <!-- 折叠触发按钮:小屏幕下显示的汉堡菜单 --> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNavDropdown"> <ul class="navbar-nav"> {% for href, id, caption in navigation_bar %} <li{% if id == active_page %} class="active"{% endif %}> <a class="nav-link" href="{{ href|e }}">{{ caption|e }}</a> </li> {% endfor %} </ul> </div> </div> </nav>
你看,我在navbar-collapse前面加了那个汉堡按钮,它通过data-target="#navbarNavDropdown"关联到你的折叠容器,点击就能展开/收起导航项了。
2. 确保正确引入Bootstrap Material Design的JS资源
折叠功能依赖Bootstrap的JavaScript(或者Material Design封装的版本),所以你要在模板的底部(通常是</body>标签前)引入必要的JS文件,比如:
<!-- 先引入jQuery(如果Bootstrap需要的话) --> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <!-- 引入Bootstrap JS或者Bootstrap Material Design的JS --> <script src="path/to/bootstrap-material-design.min.js"></script>
注意要替换成你实际使用的资源路径,如果是用CDN的话就用对应的CDN链接。如果JS没引入,就算加了按钮,点击也不会有反应哦。
3. 检查active类的样式(可选)
你的代码里给当前页面的li加了active类,记得确保这个类在Bootstrap Material Design里有对应的高亮样式,不然用户可能分不清当前在哪个页面。如果默认样式不明显,你可以自定义一下:
.navbar-nav .active > .nav-link { font-weight: bold; /* 或者加个下划线、背景色之类的 */ }
这样修改之后,小屏幕下导航栏就会显示汉堡按钮,点击就能展开所有导航项啦。
内容的提问来源于stack exchange,提问作者Paul Ahuevo
相关产品推荐
相关产品推荐

