2013-07-28 18 views
10

Also, ich versuche, meine Nav-bar-Liste Elemente zu zentrieren. Da für diese Aufgabe keine Dienstprogrammfunktion vorhanden ist, habe ich den folgenden Code entwickelt, der die ungeordnete Liste in einer Spalte innerhalb einer Zeile platziert. Aber die Liste ist noch gerechtfertigt die noch übrig, nachdem ich mit dem alten versuchen Zentrierung ‚text-align: center‘Center ungeordnete Liste navbar - bootstrap 3

<div class="navbar navbar-fixed-top "> 
    <!--<a class="navbar-brand" href="#">Title</a> --> 
    <div class= "row"> 
     <div style="border:1px solid black;text-align:center;" class="col-4 col-offset-4"> 
      <ul class="nav navbar-nav"> 
       <li class="active"><a href="/">Home</a></li> 
       <li><a href="#">About</a></li> 
       <li><a href="#">Projects</a></li> 
       <li><a href="#">Contact</a></li> 
      </ul> 
     </div> 
    </div> 
</div> 

Antwort

3

konnte ich das alleine herauszufinden. Nicht sicher, ob es die beste Lösung:

 <div class="navbar navbar-fixed-top">     
        <div style="border:1px solid black" class="container"> 
      <div class="inner-nav"> 
       <!--<a href="#" class="navbar-brand">Title</a> --> 
       <ul class="nav navbar-nav"> 
        <li class="active"><a href="/" >Home</a></li> 
        <li><a href="#" >About</a></li> 
        <li><a href="#" >Projects</a></li> 
        <li><a href="#" >contact</a></li> 
       </ul> 
      </div> 
        </div>     
      </div> 

Ich habe dann die folgenden Stile bootstrap.css:

/* ADDED for centering navbar items */ 
.navbar .inner-nav ul { 
position:relative;left:50%;float:left;margin-right:0;margin-left:0; 
} 

/* ADDED for centering navbar items */ 
.navbar .inner-nav li { 
position:relative;right:50%;float:left;margin:0;list-style:none 
} 
+0

Firefox scheint eine horizontale Bildlaufleiste mit dieser Lösung hinzufügen (aufgrund der 'rechts: 50%' Regel). – deizel

2

Hier ist der Code, den ich gestern getan habe, funktioniert gut mit Bootstrap 3 RC1. Hoffe das wird dir helfen.

   <nav class="navbar navbar-fixed-top">     
         <div class="container">       
          <a href="#" class="navbar-brand">Title</a> 
          <ul class="nav navbar-nav"> 
           <li class="active"><a href="#" >Home</a></li> 
           <li><a href="#" >Services</a></li> 
          </ul>                   
         </div>     
       </nav>    

Lassen Sie mich wissen, wenn das Problem immer noch da ist.

Edit: entfernt unnötige Markup

+0

Dies ist sauberer, aber das gleiche Problem besteht immer noch. Die Listenelemente sind innerhalb des Containers linksbündig ausgerichtet. Ich möchte sie zentriert – prufrock

23

Schritte Ich nahm:

  • entfernen float: left aus der Liste und die Liste Elemente
  • Verwenden Sie stattdessen display: inline für Listenelemente
  • Set Links zu display: inline-block so halten sie ihre Blockdimensionen
  • Einfach text-align: center zum navbar hinzufügen alles auf mobilen
  • Wrap in Medien Abfrage so vertikale Liste zum Zentrum ist nicht betroffen

Resultierende CSS Hinzufügen eines .navbar-centered Stil:

@media (min-width: 768px) { 
    .navbar-centered .navbar-nav { 
     float: none; 
     text-align: center; 
    } 
    .navbar-centered .navbar-nav > li { 
     float: none; 
    } 
    .navbar-centered .nav > li { 
     display: inline; 
    } 
    .navbar-centered .nav > li > a { 
     display: inline-block; 
    } 
} 

Verwendung durch die Anwendung .navbar-centered Stil navbar:

<div class="navbar navbar-default navbar-centered" role="navigation"> 
    ... 
</div> 
+0

Bricht beim Überqueren von klein auf mittel. Ansonsten hat es wunderbar geklappt. – Jake

+0

Scheint hier zu arbeiten - irgendwelche Vorschläge, zögern Sie nicht zu korrigieren: http://cdpn.io/vmGAJ – deizel

+1

Es hat wahrscheinlich etwas damit zu tun, dass ich auch ein Bild in der Navbar benutze. Wenn ich den Fix finde, werde ich es aufstellen. Danke für die Bestätigung von @deizel – Jake