Chcę zaimplementować menu rozwijane bootstrap na Twitterze, oto mój kod:
<span class="dropdown">
<a href="#menu1" class="dropdown-toggle" data-toggle="dropdown" ><img class="left" src="/static/img/topmenu_preferences.png" /><b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">a</a></li>
<li><a href="#">b</a></li>
<li><a href="#">c</a></li>
<li class="divider"></li>
<li><a href="#">d</a></li>
</ul>
Rozwijane menu działa dobrze, moje menu jest umieszczone obok prawej krawędzi ekranu, a kiedy klikam przełącznik rozwijania, lista wychodzi poza ekran. Wygląda jak na ekranie:
Jak mogę to naprawić?
html
css
twitter-bootstrap
Paweł
źródło
źródło
Odpowiedzi:
dodanie
.pull-right
doul.dropdown-menu
powinno to zrobićźródło
Ponieważ dodawanie Bootstrap w wersji 3.1.0
.pull-right
jest przestarzałe w menu rozwijanych..dropdown-menu-right
Należy dodaćul.dropdown-menu
zamiast. Dokumentyźródło
<ul class="dropdown-menu dropdown-menu-right">
pracował dla mnie w dniu 4.1.1W przypadku Bootstrap 4 dodawanie
dropdown-menu-right
działa. Oto działający przykład.http://codeply.com/go/w2MJngNkDQ
źródło
rozwiązanie, które nie wymaga modyfikowania HTML-a tylko CSS
Jest to szczególnie przydatne w przypadku dynamicznie generowanych menu, w których nie zawsze jest możliwe dodanie zalecanej klasy
dropdown-menu-right
do ostatniego elementuźródło
Możesz użyć klasy
.dropdown-pull-right
z następującym css:źródło
w Bootstrap 4 możesz użyć .dropleft
po prostu zmień na:
<span class="dropleft">
lub
dodaj .dropdown-menu- {lg, med, sm, xs} -right do twojego rozwijanego-menu
źródło
float-*-right
dla Bootstrap 4*
= xs, sm, md, lgźródło
Nie mogę zostawić komentarza, ponieważ mój poziom SO jest zbyt niski, ale właśnie upewniłem się, że kontener nadrzędny jest ustawiony na „przepełnienie: ukryty”, tak jak to jest (upewnij się również, że pozycja jest ustawiona).
źródło