2013-07-28 7 views
10

Tak, próbuję wyśrodkować moje elementy listy na pasku nawigacyjnym. Ponieważ nie istnieje funkcja użyteczna dla tego zadania, wymyśliłem następujący kod, który umieszcza listę nieuporządkowaną w kolumnie w rzędzie. Ale lista jest nadal uzasadnione w lewo, nawet po Staram centrowania ze starym „text-align: center”centrum nieuporządkowana lista 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> 

Odpowiedz

3

byłem w stanie zrozumieć to na własną rękę. Nie wiem, czy to było najlepsze rozwiązanie:

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

I dodaje następujące style 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 wydaje się dodawać poziomy pasek przewijania z tym rozwiązaniem (z powodu reguły 'right: 50%'). – deizel

2

Oto kod zrobiłem wczoraj, współpracuje z Bootstrap 3 RC1. Mam nadzieję, że to ci pomoże.

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

Daj mi znać, jeśli problem nadal występuje.

Edit: Usunięto niepotrzebne znaczniki

+0

To jest czystsze, ale ten sam problem nadal występuje. Pozycje listy są wyrównane do lewej w kontenerze. Chciałbym, aby były wycentrowane. – prufrock

23

kroki wziąłem:

  • Usuń float: left z listy i listy elementy
  • Zamiast elementów listy należy użyć display: inline
  • Ustaw linki do display: inline-block więc zachować ich wymiary blokowe
  • Wystarczy dodać text-align: center do paska nawigacyjnego do centrum wszystkiego
  • owijane w zapytaniu mediów tak pionową na telefon jest odporny

Wynikające CSS dodając .navbar-centered styl:

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

Zastosowanie stosując .navbar-centered styl NavBar:

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

Przerywa przy przechodzeniu z małego na średni. W przeciwnym razie zadziałało to cudownie. – Jake

+0

Działa tutaj - wszelkie sugestie, prosimy o poprawianie: http://cdpn.io/vmGAJ – deizel

+1

To prawdopodobnie ma coś wspólnego z moim również za pomocą obrazu wewnątrz paska nawigacyjnego. kiedy znajdę poprawkę, powiem to. dziękuję za weryfikację @deizel – Jake