Twitter thả xuống bootstrap đi ra ngoài màn hình


151

Tôi muốn thực hiện trình đơn thả xuống twitter bootstrap, đây là mã của tôi:

<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 hoạt động tốt, trình đơn thả xuống của tôi được đặt bên cạnh cạnh phải của màn hình và khi tôi nhấp vào nút thả xuống của mình, danh sách sẽ nằm ngoài màn hình. Nó trông giống như trên màn hình:

nhập mô tả hình ảnh ở đây

Làm thế nào tôi có thể sửa chữa nó?


Câu trả lời đúng (cho bootstrap> = v 3.2.0) cho câu hỏi này được giải quyết tại đây: stackoverflow.com/questions/23654962/ trộm bởi @cvrebert.
Michael Trouw

Tôi tin rằng mã của bạn đang thiếu thẻ kết thúc: </ span>
stealthysnacks

Câu trả lời:


261

thêm .pull-rightvào ul.dropdown-menunên làm điều đó

Thông báo khấu hao: Kể từ Bootstrap v3.1.0, .pull-righttrên các menu thả xuống không được dùng nữa . Để căn phải một menu, sử dụng .dropdown-menu-right.


29
Đó là một câu hỏi hoàn toàn riêng biệt
Dewayne

14
Câu trả lời này không thực sự khắc phục vấn đề nếu người dùng đang sử dụng một số thiết bị màn hình nhỏ hơn - nó sẽ đi ra phía bên trái thay cho bên phải (thực tế là bạn chỉ cần thay đổi kéo sang trái sang bên phải).
Ẩn danh

5
Xem câu trả lời của krzychu khi Bootstrap.pull-right bị phản đối
Jeroen

1
@HristoEnev tôi cũng vậy. Có thả xuống của bạn đi ra khỏi nút?
Choylton B. Higginbottom

116

Vì việc thêm Bootstrap v3.1.0 .pull-rightkhông được chấp nhận trên các menu thả xuống. A .dropdown-menu-rightnên được thêm vào để ul.dropdown-menuthay thế. Tài liệu


10
Ngay cả với bootstrap mới nhất .pull-right hoạt động với tôi, và .dropdown-menu-right không làm gì cả.
Shane Grant

Điều này thực sự hoạt động trong Bootstrap 4, ngoại trừ bạn thêm lớp .dropdown-menu-right vào div.dropdown-menu (không phải ul)
Timothy Kanski

<ul class="dropdown-menu dropdown-menu-right">làm việc cho tôi vào ngày 4.1.1
dw1

22

Đối với Bootstrap 4, thêm dropdown-menu-righttác phẩm. Đây là một ví dụ hoạt động ..

http://codeply.com/go/w2MJngNkDQ


Tôi đã thử tất cả các câu trả lời khác, - và đây là câu duy nhất phù hợp với tôi. Tôi đang sử dụng Bootstrap v. 4.1.0.
Zeth

14

một giải pháp không cần sửa đổi HTML chỉ có CSS

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

Nó đặc biệt hữu ích cho các menu được tạo động mà không phải lúc nào cũng có thể thêm lớp được đề xuất dropdown-menu-rightvào phần tử cuối cùng


1
đây là giải pháp duy nhất hoạt động cho bootstrap 4.0.0
charsi

10

Bạn có thể sử dụng lớp .dropdown-pull-rightvới css sau:

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


2

trong Bootstrap 4, bạn có thể sử dụng .dropleft

chỉ cần thay đổi thành:

<span class="dropleft">

hoặc là

thêm .dropdown-menu- {lg, med, sm, xs} -right vào menu thả xuống của bạn

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


0

Tôi không thể để lại nhận xét vì mức SO của tôi quá thấp, nhưng tôi chỉ đảm bảo rằng bộ chứa cha mẹ được đặt thành "tràn: ẩn" như vậy (cũng đảm bảo vị trí được đặt).

<div style="overflow:hidden;position:relative">
    <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>
</div>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.