Выпадающее меню бутстрапа Twitter выходит за пределы экрана

Я хочу реализовать раскрывающееся меню 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 работает хорошо, мое раскрывающееся меню расположено рядом с правым краем экрана, и когда я нажимаю на раскрывающийся список, список выходит за пределы экрана. Похоже, на экране:

enter image description here

Как я могу это исправить?

Ответ 1

добавление .pull-right в ul.dropdown-menu должно сделать это

Уведомление об изнашивании: Начиная с Bootstrap v3.1.0, .pull-right в выпадающих меню устарел. Чтобы выровнять по правому краю меню, используйте .dropdown-menu-right.

Ответ 2

Так как Bootstrap v3.1.0 добавление .pull-right устарело в раскрывающихся меню. A .dropdown-menu-right следует добавить вместо ul.dropdown-menu. Документы

Ответ 3

решение, которое не нуждается в модификации HTML, только CSS

li.dropdown:last-child .dropdown-menu {
  right: 0;
  left: auto;
}

Его особенно полезно для динамически создаваемых меню, где его не всегда можно добавить рекомендуемый класс dropdown-menu-right к последнему элементу

Ответ 5

Вы можете использовать класс .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>

Ответ 6

float-*-right для Bootstrap 4

*= xs, sm, md, lg

Ответ 7

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