2013-05-22 19 views
6

Mam listę rozwijaną bootstrap. To działa dobrze, ale kiedy jestem wewnątrz stronie dostępnej za pośrednictwem menu, a potem robi się dziwnie:Dlaczego menu rozwijane Bootstrap jest wyrównane w prawo?

http://2.bp.blogspot.com/-vw49cpP7weo/UZw0Jh_zmhI/AAAAAAAACJc/oadR5CTIus0/s640/dropdown.png

można zobaczyć na zdjęciu, menu jest przesunięty w prawo.

I wklej kod:

<div class="navbar navbar-fixed-top"> 
<div class="navbar-inner"> 
    <div class="container"> 
     <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
     </a> 
     <a class="brand" href="index.html"><i class="icon-chevron-right"></i> Zimil Ltda</a> 
     <div class="nav-collapse collapse"> 
      <ul class="nav pull-right"> 
       <li><a href="index.html">Inicio</a></li> 
       <li><a href="acerca.html">Quienes somos</a></li> 
       <li class="active" class="dropdown"> 
        <a data-toggle="dropdown" class="dropdown-toggle" href="jubilados.html"> 
         Productos <i class="icon-caret-down"></i></a> 
        <ul class="dropdown-menu"> 
         <li><a href="jubilados.html">Préstamos a jubilados</a></li> 
         <li><a href="cbu.html">Préstamos CBU</a></li> 
         <li><a href="otros.html">Otros créditos</a></li> 
        </ul> 
       </li> 
       <li><a href="trabajar.php">Trabajá con nosotros</a></li> 
      </ul> 
     </div> 
    </div> 
</div> 

Odpowiedz

1

Zmiana:

<ul class="nav pull-right"> 

do

<ul class="nav pull-left"> 

lub po prostu usunąć klasę pomocnika pull-right pozostawiając tylko nav klasa:

<ul class="nav"> 

Oto JS Bin demo: http://jsbin.com/ezuray/1/

+1

'pull-left' nie jest potrzebny, ponieważ domyślnie będzie wyrównany do lewej mimo to. –

+0

@JamesDonnelly: masz rację. –

+0

Spróbuję, jak tylko wrócę do domu. Dzięki. – yBrodsky

4

warto dodać to do pliku css lub jako elementu stylu to:

.dropdown-menu { left:auto; } 

miałem podobny problem z przemieszczeniem rozwijanego w dół i to działało dla mnie .....

+0

To zadziałało dla mnie, ale dlaczego? Co powoduje problem? – Greg

+0

Szczerze mówiąc, nie jestem absolutnie jasny na ten temat. W moim przypadku elementy listwy zostały ułożone poziomo, a także przesunięte. Jestem assumming, że ustawienie "auto" resetuje domyślne położenie obiektów, bez jakichkolwiek ustawień atrybutów elementów przodka (musiałem dodać osobny wpis, aby przełączyć wyświetlanie pozycji menu z poziomego na pionowy). Ktoś jeszcze wie na pewno? –

+0

To wydaje się pomagać w wyjaśnieniu, dlaczego: http://stackoverflow.com/questions/4471850/what-jest-posiada-na-wysokiej-w-wysokiej-właściwości – Greg

14

Po prostu pull-right dropdown-menu pracował dla mnie.

EDIT:

Nieaktualne .pull-right wyrównanie

Począwszy od v3.1.0, mamy przestarzałe .pull-right w menu rozwijanych. Aby wyrównać menu, użyj opcji .dropdown-menu-right. Prawe wyrównane komponenty nawigacyjne w pasku nawigacyjnym używają tej klasy w wersji mixin do automatycznego wyrównania menu. Aby to zmienić, użyj .dropdown-menu-left.

+0

Oczywiste jest, że nie liczą się "dlaczego", to pytanie jest oparte na błędzie za pomocą menu rozwijanego po prawej stronie. To rozwiązuje problem i jest lepszym rozwiązaniem niż pozostałe dwie odpowiedzi. – MarceloBarbosa

+1

Dobre rozwiązanie! to doda styl "left: auto" i "right: 0" i wyrówna div z prawej –

4

Jak testowane na wersji 3.3.2 bootstrap, rozwijana-menu-nie prawo pracować dla mnie albo. Oto, co zrobiłem, żeby to naprawić w moim przypadku.

Zamiast:

<ul class="dropdown-menu dropdown-menu-right"> 

użyłem:

<ul class="dropdown-menu" style="right: 0; left: auto;"> 

działa idealnie.

+0

** menu rozwijane-prawo ** już to zrobisz '.dropdown-menu-right {right: 0; left: auto} 'Jeśli ta klasa nie działa dla ciebie, prawdopodobnie masz błąd w swoim CSS lub używasz starej wersji BootStrap. Jak już powiedziałem, musisz użyć Bootstrap v3.1.0 lub nowszego. – MarceloBarbosa