Wyśrodkuj zawartość w responsywnym pasku bootstrap

Mam problem z centrowaniem treści w pasku nawigacyjnym bootstrap. Używam bootstrap 3. Czytałem wiele postów, ale CSS lub metody nie będą działać z moim kodem! Jestem sfrustrowana, więc to moja ostatnia opcja. Każda pomoc będzie mile widziana!

<!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/

Author: Ondrej Slinták, 2013-09-13

10 answers

Myślę, że tego właśnie szukasz. Musisz usunąć float: left z wewnętrznego nav, aby wyśrodkować go i zrobić z niego inline-block.

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

.navbar .navbar-collapse {
  text-align: center;
}

Http://jsfiddle.net/bdd9U/2/

Edit: jeśli chcesz, aby efekt ten wystąpił tylko wtedy, gdy nav nie jest zwinięty otaczają go w odpowiednim zapytaniu media.

@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/

 442
Author: hajpoj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-26 21:47:06

W oryginalnym poście pytano, jak wyśrodkować zawalony navbar. Aby wyśrodkować elementy na normalnym pasku nawigacyjnym, spróbuj tego:

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

.navbar-nav > li {
    display: inline-block;
    float:none;
}
 39
Author: Radu Rascol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-28 03:55:58

Jest inny sposób, aby to zrobić dla układów, które nie muszą umieszczać paska nawigacyjnego wewnątrz kontenera i które nie wymagają przesłonięcia CSS lub Bootstrap.

Po prostu umieść div z klasą Bootstrap container wokół paska nawigacyjnego. Spowoduje to wyśrodkowanie linków wewnątrz paska nawigacyjnego:

<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 -->

Jeśli chcesz, aby zawartość treści była wyrównana do środkowego paska nawigacyjnego, umieść ją również w znaczniku Bootstrap container.

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

Nie każdy może używać tego typu układów (niektóre ludzie muszą zagnieżdżać sam navbar wewnątrz container). Niemniej jednak, jeśli możesz to zrobić, jest to łatwy sposób na wyśrodkowanie linków navbara i ciała.

Możesz zobaczyć wyniki w tym fullpage JSFiddle: http://jsfiddle.net/bdd9U/231/embedded/result/

Źródło: http://jsfiddle.net/bdd9U/229/

 19
Author: Eric S. Bullington,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-25 15:55:16

Ten kod zadziałał dla mnie

.navbar .navbar-nav {
    display: inline-block;
    float: none;
}
.navbar .navbar-collapse {
    text-align: center;
}
 12
Author: Shuhad zaman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-06 17:27:01

Z oficjalnej strony bootstrap (i prawie, jak powiedział Eric S. Bullington.

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

Przykładowy navbar wygląda następująco:

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

Aby wyśrodkować nav, to co zrobiłem:

<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*/
    }
}

Praca z class = "container" i navbar-prawo lub lewo, i oczywiście można zastąpić id przez class. : D

 4
Author: NoZero,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-25 21:31:51

Aktualizacja 2018

Bootstrap 4

Centrowanie zawartości paska nawigacyjnego jest łatwiejsze jest Bootstrap 4 i można zobaczyć wiele scenariuszy centrowania wyjaśnionych tutaj: https://stackoverflow.com/a/20362024/171456

Bootstrap 3

Innym scenariuszem, na który nie ma jeszcze odpowiedzi, jest centrowanie ZARÓWNOznaku , jak i linków navbar. Oto rozwiązanie..

.navbar .navbar-header,
.navbar-collapse {
    float:none;
    display:inline-block;
    vertical-align: top;
}

@media (max-width: 768px) {
    .navbar-collapse  {
        display: block;
    }
}

Http://www.codeply.com/go/1lrdvNH9GI

Zobacz też: Bootstrap NavBar z lewym, środkowym lub prawym wyrównanym elementem

 4
Author: Zim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-06 22:53:08

Wydaje się, że wszystkie te odpowiedzi dotyczą niestandardowego css na szczycie bootstrap. Odpowiedź, którą podaję, wykorzystuje tylko bootstrap, więc mam nadzieję, że przyda się tym, którzy chcą ograniczyć dostosowywanie.

To zostało przetestowane z 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>
 3
Author: Tommy May,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-28 05:39:08

V4 Bootstrap dodaje Center (justify-content-center) i Right Alignment (justify-content-end) zgodnie z: 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>
 2
Author: The Coder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-07 02:08:18

Użyj następującego kodu 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>

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

Modyfikuj według swoich potrzeb

 1
Author: Alexander Gorelik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-28 13:53:23

To powinno zadziałać

 .navbar-nav {
    position: absolute;
    left: 50%;
    transform: translatex(-50%);
}
 0
Author: Govan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-02 06:18:40