Bootstrap导航栏添加居中文本后菜单项换行问题咨询
导航栏菜单项换行问题:添加居中文本后“Contact Us”被挤到下一行
基于MDB的Bootstrap导航栏示例,添加自定义居中文本后,“Contact Us”菜单项无法与“About”“Services”保持在同一行,被挤到下一行。以下是相关代码及页面截图:
index.html代码
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <meta http-equiv="x-ua-compatible" content="ie=edge" /> <meta name="robots" content="index, follow" /> <title>JU Physiotherapy</title> <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" /> <!-- Font Awesome --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" /> <!-- Google Fonts Roboto --> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&display=swap" /> <!-- MDB --> <link rel="stylesheet" href="css/mdb.min.css" /> <link rel="stylesheet" href="css/styles.css" /> </head> <body> <!-- Start your project here--> <!-- Navbar --> <nav data-mdb-navbar-init class="navbar navbar-expand-lg navbar-light bg-white"> <!-- Container wrapper --> <div class="container-fluid"> <!-- Toggle button --> <button data-mdb-collapse-init class="navbar-toggler" type="button" data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <i class="fas fa-bars"></i> </button> <!-- Collapsible wrapper --> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <!-- Navbar brand --> <a class="navbar-brand mt-2 mt-lg-0" href="index.html"> <img style="width:50px;height:50px;" src="images/logo.png" alt="" loading="lazy" /> </a> <!-- Left links --> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item"> <a class="nav-link" href="index.html">About</a> </li> <li class="nav-item"> <a class="nav-link" href="services.html">Services</a> </li> <li class="nav-item"> <a class="nav-link" href="contact-us.html">Contact Us</a> </li> </ul> <!-- Left links --> </div> <!-- Collapsible wrapper --> <div class="container-md d-flex justify-content-center"> Hello </div> <!-- Right elements --> <div class="d-flex align-items-center"> <!-- Icon --> <a class="text-reset me-3" target="_blank" href="https://www.facebook.com/profile.php?id=100090193406935"> <img style="width:45px;height:45px" src="images/facebook.png" alt=""> </a> <a class="text-reset me-3" target="_blank" href="https://www.linkedin.com/in/james-underwood-269a06118/"> <img style="width:45px;height:45px;" src="images/linkedin.png" alt=""> </a> <a class="text-reset me-3" target="_blank" href="https://www.instagram.com/juphysiotherapy/"> <img style="width:38px;height:38px;" src="images/instagram.png" alt=""> </a> <a class="text-reset me-3" target="_blank" href="https://www.whatsapp.com/"> <img style="width:40px;height:40px;" src="images/whatsapp.png" alt=""> </a> <a class="text-reset me-3" href="#"> <img style="width:40px;height:40px;border-radius:20px;" src="images/profile-pic-current.png" alt=""> </a> </div> </div> <!-- Container wrapper --> </nav> <!-- Navbar --> <!-- End your project here--> <!-- MDB --> <script type="text/javascript" src="js/mdb.umd.min.js"></script> </body> </html>
styles.css代码
body { margin: 0%; padding: 0%; }
页面截图

问题原因及解决方法
问题根源在于布局结构不合理:原代码中居中文本使用的container-md自带左右内边距,且它与左侧折叠导航、右侧图标在container-fluid下是并列元素,当屏幕宽度不足时,左侧导航的可用空间被挤压,导致菜单项换行。
修复方案:
- 给外层
container-fluid添加d-flex align-items-center,让内部所有元素在同一行垂直居中。 - 移除居中文本的
container-md,替换为flex-grow-1 d-flex justify-content-center:flex-grow-1让该容器占据左右元素间的所有可用空间,避免挤压两侧内容。d-flex justify-content-center保证文字在容器内居中显示。
- 修正原代码中多余的闭合
</div>标签,确保HTML结构合法。
修改后的核心导航栏代码:
<nav data-mdb-navbar-init class="navbar navbar-expand-lg navbar-light bg-white"> <div class="container-fluid d-flex align-items-center"> <!-- Toggle button --> <button data-mdb-collapse-init class="navbar-toggler" type="button" data-mdb-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <i class="fas fa-bars"></i> </button> <!-- Collapsible wrapper --> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <a class="navbar-brand mt-2 mt-lg-0" href="index.html"> <img style="width:50px;height:50px;" src="images/logo.png" alt="" loading="lazy" /> </a> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item"> <a class="nav-link" href="index.html">About</a> </li> <li class="nav-item"> <a class="nav-link" href="services.html">Services</a> </li> <li class="nav-item"> <a class="nav-link" href="contact-us.html">Contact Us</a> </li> </ul> </div> <!-- 调整后的居中文本容器 --> <div class="flex-grow-1 d-flex justify-content-center"> Hello </div> <!-- Right elements --> <div class="d-flex align-items-center"> <a class="text-reset me-3" target="_blank" href="https://www.facebook.com/profile.php?id=100090193406935"> <img style="width:45px;height:45px" src="images/facebook.png" alt=""> </a> <a class="text-reset me-3" target="_blank" href="https://www.linkedin.com/in/james-underwood-269a06118/"> <img style="width:45px;height:45px;" src="images/linkedin.png" alt=""> </a> <a class="text-reset me-3" target="_blank" href="https://www.instagram.com/juphysiotherapy/"> <img style="width:38px;height:38px;" src="images/instagram.png" alt=""> </a> <a class="text-reset me-3" target="_blank" href="https://www.whatsapp.com/"> <img style="width:40px;height:40px;" src="images/whatsapp.png" alt=""> </a> <a class="text-reset me-3" href="#"> <img style="width:40px;height:40px;border-radius:20px;" src="images/profile-pic-current.png" alt=""> </a> </div> </div> </nav>
修改后,导航栏的三个模块会合理分配空间,菜单项不会再被挤到下一行。
内容的提问来源于stack exchange,提问作者IsaacNewtonGravity
相关产品推荐
相关产品推荐

