如何使用Bootstrap将导航栏拆分为两行:navbar-brand与折叠菜单分行
Bootstrap导航栏两行布局实现方案
需求:将navbar-brand单独放在一行,折叠菜单及搜索框放在下方一行。
当前代码
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="https://getbootstrap.com/docs/5.3/assets/css/docs.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> <nav class="navbar navbar-expand-md bg-body-tertiary"> <div class="container"> <div class="col-sm-6 col-xs-12"> <a class="navbar-brand" href="#">Navbar</a> </div> <div class="col-sm-6 col-xs-12 float-end"> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarTogglerDemo02"> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item"> <a class="nav-link active" aria-current="page" href="#">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item"> <a class="nav-link disabled">Disabled</a> </li> </ul> <form class="d-flex" role="search"> <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search"> <button class="btn btn-outline-success" type="submit">Search</button> </form> </div> </div> </div> </nav>
期望效果

解决方案
核心是调整导航栏内部的布局方向,让品牌区和菜单区垂直排列,同时保持响应式适配:
修改后的代码:
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="https://getbootstrap.com/docs/5.3/assets/css/docs.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> <nav class="navbar navbar-expand-md bg-body-tertiary"> <div class="container flex-column"> <!-- 品牌区 --> <div class="w-100 d-flex justify-content-start py-2"> <a class="navbar-brand" href="#">Navbar</a> </div> <!-- 菜单区 --> <div class="w-100 d-flex justify-content-end"> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse w-100" id="navbarTogglerDemo02"> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item"> <a class="nav-link active" aria-current="page" href="#">Home</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item"> <a class="nav-link disabled">Disabled</a> </li> </ul> <form class="d-flex" role="search"> <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search"> <button class="btn btn-outline-success" type="submit">Search</button> </form> </div> </div> </div> </nav>
关键说明
flex-column:让容器内元素垂直排列,实现两行布局w-100:确保每个区块占满容器宽度,避免内容错位justify-content-start/justify-content-end:分别控制品牌左对齐、切换按钮右对齐- 移除原代码中的
col-sm-6和float-end,改用flex工具类更贴合Bootstrap 5的布局逻辑
内容的提问来源于stack exchange,提问作者Kermit
相关产品推荐
相关产品推荐

