【问题标题】:Center content in responsive bootstrap navbar在响应式引导导航栏中居中内容
【发布时间】:2025-12-08 07:30:01
【问题描述】:

我无法在引导导航栏中将我的内容居中。我正在使用 bootstrap 3。我已经阅读了很多帖子,但是使用的 CSS 或方法不适用于我的代码!我真的很沮丧,所以这就像我最后的选择。任何帮助将不胜感激!

<!DOCTYPE html>
<html>
  <head>
    <title>Navigation</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="css/style.css" rel="stylesheet" media="screen">
  </head>
  <body>
    <div class="container">
      <nav class="navbar navbar-default" role="navigation">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
          <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
              <ul class="dropdown-menu">
                <li><a href="#">Action</a></li>
                <li><a href="#">Another action</a></li>
                <li><a href="#">Something else here</a></li>
                <li><a href="#">Separated link</a></li>
                <li><a href="#">One more separated link</a></li>
              </ul>
            </li>
          </ul>
        </div><!-- /.navbar-collapse -->
      </nav>
      <h1>Home</h1>

   </div>
     <!--JAVASCRIPT-->
   <script src="js/jquery-1.10.2.min.js"></script>
   <script src="js/bootstrap.min.js"></script>
 </body>
</html>

https://jsfiddle.net/amk07fb3/

【问题讨论】:

    标签: css twitter-bootstrap navbar


    【解决方案1】:

    我认为这就是您要寻找的。您需要从内部导航中删除 float: left 以使其居中并使其成为内联块。

    .navbar .navbar-nav {
      display: inline-block;
      float: none;
      vertical-align: top;
    }
    
    .navbar .navbar-collapse {
      text-align: center;
    }
    

    http://jsfiddle.net/bdd9U/2/

    编辑:如果您只希望在导航未折叠时发生此效果,请在适当的媒体查询中将其包围。

    @media (min-width: 768px) {
        .navbar .navbar-nav {
            display: inline-block;
            float: none;
            vertical-align: top;
        }
    
        .navbar .navbar-collapse {
            text-align: center;
        }
    }
    

    http://jsfiddle.net/bdd9U/3/

    【讨论】:

    • 如果您对链接下方的多余空间有疑问(例如,如果您为活动链接使用不同的背景),您可以使用:.navbar .navbar-collapse { line-height: 0px; }
    • 我建议不要使用原始 bootstrap.css。相反,创建自己的风格。
    • 在我的情况下,我必须删除“flex”并替换为“inline-block”,然后它才开始工作。
    【解决方案2】:

    原来的帖子是询问如何使折叠的导航栏居中。要在普通导航栏上居中元素,试试这个:

    .navbar-nav {
        float:none;
        margin:0 auto;
        display: block;
        text-align: center;
    }
    
    .navbar-nav > li {
        display: inline-block;
        float:none;
    }
    

    【讨论】:

      【解决方案3】:

      对于不必将导航栏放在容器内且不需要任何 CSS 或 Bootstrap 覆盖的布局,还有另一种方法。

      只需在导航栏周围放置一个带有 Bootstrap container 类的 div。这将使导航栏内的链接居中:

      <nav class="navbar navbar-default">
        <!-- here's where you put the container tag -->
        <div class="container">
      
          <div class="navbar-header">
          <!-- header and collapsed icon here -->
          </div>
      
          <div class="collapse navbar-collapse">
            <ul class="nav navbar-nav">
            <!-- links here -->
            </ul>
          </div>
        </div> <!-- close the container tag -->
      </nav> <!-- close the nav tag -->
      

      如果您希望将正文内容对齐到中心导航栏,您还可以将该正文内容放在 Bootstrap container 标记中。

      <div class="container">
        <! -- body content here -->
      </div>
      

      不是每个人都可以使用这种类型的布局(有些人需要将导航栏本身嵌套在container 中)。尽管如此,如果你能做到,这是让你的导航栏链接和正文居中的简单方法。

      您可以在这个全页 JSFiddle 中看到结果: http://jsfiddle.net/bdd9U/231/embedded/result/

      来源: http://jsfiddle.net/bdd9U/229/

      【讨论】:

      • 嗯,这个解决方案似乎不再起作用了。您的示例现在左对齐。
      • 对我不起作用,但感谢您的解决方案的简单性!
      【解决方案4】:

      对于引导程序 4:

      随便用

      <ul class="navbar-nav mx-auto">
      

      mx-auto 会完成这项工作

      【讨论】:

      • 如果我想在中心也垂直对齐怎么办?
      【解决方案5】:

      这段代码对我有用

      .navbar .navbar-nav {
          display: inline-block;
          float: none;
      }
      .navbar .navbar-collapse {
          text-align: center;
      }
      

      【讨论】:

        【解决方案6】:

        引导程序 5(2021 年更新)

        导航栏仍然是基于 Bootstrap 5 的 flexbox,内容居中的工作方式与 Bootstrap 4 相同。Examples

        引导程序 4

        Bootstrap 4 更容易使导航栏内容居中,您可以在此处看到许多居中场​​景的解释:https://*.com/a/20362024/171456

        引导程序 3

        另一种似乎尚未得到解答的场景是居中both 品牌导航栏链接。这是一个解决方案..

        .navbar .navbar-header,
        .navbar-collapse {
            float:none;
            display:inline-block;
            vertical-align: top;
        }
        
        @media (max-width: 768px) {
            .navbar-collapse  {
                display: block;
            }
        }
        

        http://codeply.com/go/1lrdvNH9GI

        另见: Bootstrap NavBar with left, center or right aligned items

        【讨论】:

          【解决方案7】:

          来自 bootstrap 官方网站(几乎就像 Eric S. Bullington 所说的那样。

          https://getbootstrap.com/components/#navbar-default

          示例导航栏如下所示:

          <nav class="navbar navbar-default">
              <div class="container-fluid">
                  <!-- Brand and toggle get grouped for better mobile display -->
                  <div class="navbar-header">
                  ...etc
          

          使导航居中,这就是我所做的:

          <div class="container-fluid" id="nav_center">
          

          css:

          @media (min-width:768px) { /* don't break navbar on small screen */
              #nav_center {
                  width: 700px /* need to found your width according to your entry*/
              }
          }
          

          使用 class="container" 和 navbar-right 或 left,当然您可以按类替换 id。 :D

          【讨论】:

            【解决方案8】:

            似乎所有这些答案都涉及引导程序之上的自定义 css。我提供的答案仅使用引导程序,因此我希望它可以用于那些想要限制自定义的人。

            这是用 Bootstrap V3.3.7 测试的

            <footer class="navbar-default navbar-fixed-bottom">
                <div class="container-fluid">
                    <div class="row">
                        <div class="col-xs-offset-5 col-xs-2 text-center">
                            <p>I am centered text<p>
                        </div>
                        <div class="col-xs-5"></div>
                    </div>
                </div>
            </footer>
            

            【讨论】:

              【解决方案9】:

              这应该可以工作

               .navbar-nav {
                  position: absolute;
                  left: 50%;
                  transform: translatex(-50%);
              }
              

              【讨论】:

                【解决方案10】:

                使用下面的html

                <link rel="stylesheet" href="app/components/directives/navBar/navBar.scss"/>
                <nav class="navbar navbar-default" role="navigation">
                    <div class="container-fluid">
                        <!-- Collect the nav links, forms, and other content for toggling -->
                            <ul class="nav navbar-nav">
                                <li><h5><a href="#/">Home</a></h5></li>
                                <li>|</li>
                                <li><h5><a href="#products">About</a></h5></li>
                                <li>|</li>
                                <li><h5><a href="#">Contacts</a></h5></li>
                                <li>|</li>
                                <li><h5><a href="#cart">Cart</a></h5></li>
                            </ul>
                    </div><!-- /.container-fluid -->
                </nav>
                

                还有css

                .navbar-nav {
                  width: 100%;
                  text-align: center;
                }
                .navbar-nav > li {
                  float: none;
                  display: inline-block;
                }
                .navbar-default {
                  background-color: white;
                  border-color: white;
                }
                .navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:hover, .navbar-default .navbar-nav>.active>a:focus{
                  background-color:white;
                }
                

                根据需要修改

                【讨论】:

                  【解决方案11】:

                  BootStrap 的 V4 正在添加 Center (justify-content-center) 和 Right Alignment (justify-content-end) 如下:https://v4-alpha.getbootstrap.com/components/navs/#horizontal-alignment

                  <ul class="nav justify-content-center">
                    <li class="nav-item">
                      <a class="nav-link active" href="#">Active</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="#">Link</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="#">Link</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link disabled" href="#">Disabled</a>
                    </li>
                  </ul>
                  

                  【讨论】:

                    【解决方案12】:

                    因为它应用了 flex。您可以使用此代码

                    @media (min-width: 992px){
                    .navbar-expand-lg .navbar-collapse {
                        display: -ms-flexbox!important;
                        display: flex!important;
                        -ms-flex-preferred-size: auto;
                        flex-basis: auto;
                        justify-content: center;
                    }
                    

                    在我的情况下它工作正常。

                    【讨论】:

                      最近更新 更多