Centrer le contenu sur le bootstrap navbar responsive

j'ai du mal à centrer mon contenu dans le bootstrap navbar. J'utilise bootstrap 3. J'ai lu beaucoup de messages, mais les CSS ou les méthodes utilisées ne fonctionneront pas avec mon code! Je suis vraiment frustré, donc c'est comme ma dernière option. Toute aide serait appréciée!

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

200
demandé sur Ondrej Slinták 2013-09-13 06:17:33

10 réponses

je pense que c'est ce que vous cherchez. Vous devez enlever le float: left du nav intérieur pour le centrer et en faire un bloc en ligne.

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

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

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

Edit: si vous voulez que cet effet se produire lorsque la valeur liquidative n'est pas effondré l'entourent dans la requête de média.

@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
répondu hajpoj 2014-08-26 21:47:06

le post original demandait comment centrer le navbar effondré. Pour centrer les éléments sur le navbar normal, essayez ceci:

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

.navbar-nav > li {
    display: inline-block;
    float:none;
}
39
répondu Radu Rascol 2017-05-28 03:55:58

il y a une autre façon de faire cela pour les mises en page qui n'ont pas besoin de mettre la barre de navigation à l'intérieur du conteneur, et qui ne nécessitent pas de dérogations CSS ou Bootstrap.

placez simplement un div avec la classe Bootstrap container autour du navbar. Cela va centrer les liens à l'intérieur de la barre de navigation:

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

si vous voulez que le contenu du corps soit aligné sur la barre centrale de navigation, vous mettez aussi ce contenu dans la balise Bootstrap container .

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

tout le monde ne peut pas utiliser ce type de disposition (certaines personnes ont besoin de nicher le navbar lui-même à l'intérieur du container ). Néanmoins, si vous pouvez le faire, il est un moyen facile d'obtenir vos liens navbar et le corps centré.

vous pouvez voir les résultats dans cette fullpage JSFiddle: http://jsfiddle.net/bdd9U/231/embedded/result /

Source: http://jsfiddle.net/bdd9U/229 /

19
répondu Eric S. Bullington 2014-10-25 15:55:16

ce code a fonctionné pour moi

.navbar .navbar-nav {
    display: inline-block;
    float: none;
}
.navbar .navbar-collapse {
    text-align: center;
}
12
répondu Shuhad zaman 2016-04-06 17:27:01

du site officiel de bootstrap (et, presque, comme Eric S. Bullington l'a dit.

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

l'exemple navbar ressemble à:

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

pour centrer le nav, que ce que j'ai fait:

<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*/
    }
}
"151930920 de travail" class="conteneur" et la barre de navigation de droite ou de gauche, et bien sûr, vous peut remplacer id par classe. : D

4
répondu NoZero 2016-07-25 21:31:51

mise à Jour 2018

Bootstrap 4

centrage Navbar contenu est plus facile est Bootstrap 4 et vous pouvez voir de nombreux scénarios de centrage expliqué ici: https://stackoverflow.com/a/20362024/171456

Bootstrap 3

un autre scénario qui ne semble pas avoir été répondu encore est le centrage les deux le marque et navbar liens . Voici une solution..

.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

Voir Aussi: Bootstrap barre de navigation à gauche, centré ou aligné à droite les éléments

4
répondu Zim 2018-03-06 22:53:08

semble comme toutes ces réponses impliquent CSS personnalisé sur le dessus de bootstrap. La réponse que je fournis utilise seulement bootstrap donc j'espère qu'il vient à utiliser pour ceux qui veulent limiter les personnalisations.

cela a été testé avec 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
répondu Tommy May 2016-11-28 05:39:08

V4 de BootStrap ajoute Center (justify-content-center) et Right Alignment (justify-content-end) comme suit: 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
répondu The Coder 2017-06-07 02:08:18

Utiliser le code html suivant

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

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

modifier selon vos besoins

1
répondu Alexander Gorelik 2016-09-28 13:53:23

ça devrait marcher

 .navbar-nav {
    position: absolute;
    left: 50%;
    transform: translatex(-50%);
}
0
répondu Govan 2018-02-02 06:18:40