231

コンテンツをブートストラップ ナビゲーション バーの中央に配置するのに問題があります。私はブートストラップ 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/

4

12 に答える 12

462

これがあなたが探しているものだと思います。内側のナビゲーションからを削除し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/

于 2013-09-13T05:14:21.770 に答える
51

元の投稿では、折りたたまれたナビゲーション バーを中央に配置する方法を尋ねていました。通常のナビゲーションバーの中央に要素を配置するには、これを試してください:

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

.navbar-nav > li {
    display: inline-block;
    float:none;
}
于 2016-03-02T20:48:03.517 に答える
27

コンテナ内に navbar を配置する必要がなく、CSS や Bootstrap のオーバーライドを必要としないレイアウトに対してこれを行う別の方法があります。

containerナビゲーションバーの周りにBootstrap クラスを含む 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 -->

本文のコンテンツを中央のナビゲーション バーに揃えたい場合は、その本文のコンテンツも Bootstrapcontainerタグに配置します。

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

誰もがこのタイプのレイアウトを使用できるわけではありません (ナビゲーション バー自体を 内にネストする必要がある人もいますcontainer)。それにもかかわらず、それができれば、ナビゲーション バーのリンクとボディを中央に配置する簡単な方法です。

このフルページ JSFiddle で結果を確認できます: http://jsfiddle.net/bdd9U/231/embedded/result/

ソース: http://jsfiddle.net/bdd9U/229/

于 2014-10-25T15:55:16.680 に答える
16

ブートストラップ 4 の場合:

使うだけ

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

mx-auto が仕事をします

于 2019-02-12T15:17:06.747 に答える
12

このコードは私のために働いた

.navbar .navbar-nav {
    display: inline-block;
    float: none;
}
.navbar .navbar-collapse {
    text-align: center;
}
于 2016-04-06T17:27:01.513 に答える
4

これらすべての回答には、ブートストラップの上にカスタム 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>
于 2016-11-28T05:39:08.787 に答える
4

ブートストラップの公式サイトから(そして、ほぼ、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

于 2016-07-25T21:31:51.737 に答える
2

これはうまくいくはずです

 .navbar-nav {
    position: absolute;
    left: 50%;
    transform: translatex(-50%);
}
于 2018-02-02T06:18:40.890 に答える
1

次の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;
}

必要に応じて変更します

于 2016-09-28T13:53:23.627 に答える
0

それはフレックスを適用するためです。このコードを使用できます

@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;
}

私の場合、正しく機能しました。

于 2021-01-20T15:54:25.040 に答える