Ответ 1
добавление .pull-right
в ul.dropdown-menu
должно сделать это
Уведомление об изнашивании: Начиная с Bootstrap v3.1.0,
.pull-right
в выпадающих меню устарел. Чтобы выровнять по правому краю меню, используйте.dropdown-menu-right
.
Я хочу реализовать раскрывающееся меню twitter bootstrap, здесь мой код:
<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>
Dropdown работает хорошо, мое раскрывающееся меню расположено рядом с правым краем экрана, и когда я нажимаю на раскрывающийся список, список выходит за пределы экрана. Похоже, на экране:
Как я могу это исправить?
добавление .pull-right
в ul.dropdown-menu
должно сделать это
Уведомление об изнашивании: Начиная с Bootstrap v3.1.0,
.pull-right
в выпадающих меню устарел. Чтобы выровнять по правому краю меню, используйте.dropdown-menu-right
.
Так как Bootstrap v3.1.0 добавление .pull-right
устарело в раскрывающихся меню. A .dropdown-menu-right
следует добавить вместо ul.dropdown-menu
. Документы
решение, которое не нуждается в модификации HTML, только CSS
li.dropdown:last-child .dropdown-menu {
right: 0;
left: auto;
}
Его особенно полезно для динамически создаваемых меню, где его не всегда можно добавить рекомендуемый класс dropdown-menu-right
к последнему элементу
Для Bootstrap 4, работает dropdown-menu-right
. Вот рабочий пример..
.dropdown-pull-right
со следующим css:
.dropdown-pull-right {
float: right !important;
right: 0;
left: auto;
}
.dropdown-pull-right>.dropdown-menu {
right: 0;
left: auto;
}
<link href="https://maxcdn.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
<div class="dropdown dropdown-pull-right btn-group">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
Open Dropdown
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
float-*-right
для Bootstrap 4
*
= xs, sm, md, lg
в Bootstrap 4 вы можете использовать .dropleft
просто измените на:
<span class="dropleft">
или же
добавьте .dropdown-menu- {lg, med, sm, xs} -right в ваше выпадающее меню
<div class="dropdown-menu dropdown-menu-sm-right" aria-labelledby="dropdown03">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>