Twitter bootstrap หล่นลงไปด้านนอกหน้าจอ


151

ฉันต้องการที่จะใช้เมนูแบบเลื่อนลง 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>

ดร็อปดาวน์ใช้งานได้ดีดรอปดาวน์ของฉันจะอยู่ติดกับขอบด้านขวาของหน้าจอและเมื่อฉันคลิกสลับดรอปดาวน์รายการจะอยู่นอกหน้าจอ ดูเหมือนว่าบนหน้าจอ:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันจะแก้ไขได้อย่างไร


คำตอบที่ถูกต้อง (สำหรับ bootstrap> = v 3.2.0) สำหรับคำถามนี้แก้ไขได้ที่นี่: stackoverflow.com/questions/23654962/…โดย @cvrebert
Michael Trouw

ฉันเชื่อว่ารหัสของคุณไม่มีแท็กสิ้นสุด: </span>
stealthysnacks

คำตอบ:


263

เพิ่ม.pull-rightไปul.dropdown-menuควรจะทำมัน

การเลิกหมายเหตุ:ในฐานะของเงินทุน v3.1.0, .pull-rightในเมนูแบบเลื่อนลงจะเลิก .dropdown-menu-rightไปทางขวาชิดเมนูการใช้งาน


29
นั่นเป็นคำถามที่แยกจากกันอย่างสมบูรณ์
Dewayne

14
คำตอบนี้ไม่ได้แก้ไขปัญหาหากผู้ใช้กำลังใช้อุปกรณ์หน้าจอขนาดเล็กบางอย่าง - มันจะออกไปทางด้านซ้ายแทนด้านขวา (ในความเป็นจริงว่าคุณเพิ่งเปลี่ยนดึงซ้ายเป็นดึงขวา)
ไม่ระบุชื่อ

5
ดูคำตอบ krzychu เป็น Bootstrap.pull-right เลิกใช้แล้ว
Jeroen

1
@ ChristoEnev ฉันทั้ง ดร็อปดาวน์ของคุณหยุดลงหรือไม่
Choylton B. Higginbottom

116

เนื่องจากการเพิ่ม Bootstrap v3.1.0 .pull-rightถูกคัดค้านในเมนูแบบเลื่อนลง .dropdown-menu-rightควรจะเพิ่มul.dropdown-menuแทน เอกสาร


10
แม้จะมี bootstrap .pull-right ล่าสุดก็ใช้ได้สำหรับฉันและ. dropdown-menu-right ไม่ได้ทำอะไรเลย
เชนแกรนท์

นี่ใช้งานได้จริงใน Bootstrap 4 ยกเว้นคุณเพิ่ม class. dropdown-menu-right to div.dropdown-menu (ไม่ใช่ ul)
Timothy Kanski

<ul class="dropdown-menu dropdown-menu-right">ทำงานสำหรับฉันใน 4.1.1
dw1

22

สำหรับ Bootstrap 4 การเพิ่มdropdown-menu-rightผลงาน นี่คือตัวอย่างการทำงาน ..

http://codeply.com/go/w2MJngNkDQ


ฉันลองคำตอบอื่นทั้งหมด - และอันนี้เป็นคำตอบเดียวที่เหมาะกับฉันเช่นกัน ฉันใช้ Bootstrap v. 4.1.0
Zeth

14

โซลูชันที่ไม่จำเป็นต้องแก้ไข HTML เท่านั้น CSS คือ

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

มันมีประโยชน์โดยเฉพาะอย่างยิ่งสำหรับเมนูที่สร้างขึ้นแบบไดนามิกซึ่งไม่สามารถเพิ่มคลาสที่แนะนำdropdown-menu-rightให้กับองค์ประกอบสุดท้ายได้เสมอไป


1
นี่เป็นทางออกเดียวที่ทำงานกับ bootstrap 4.0.0
charsi

10

คุณสามารถใช้คลาส.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>


2

ใน Bootstrap 4 คุณสามารถใช้. คล่องแคล่ว

เพียงเปลี่ยนเป็น:

<span class="dropleft">

หรือ

เพิ่ม. dropdown-menu- {lg, med, sm, xs} - ตรงไปที่ดรอปดาวน์เมนูของคุณ

<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

ฉันไม่สามารถออกความคิดเห็นได้เนื่องจากระดับ SO ของฉันต่ำเกินไป แต่ฉันเพิ่งตรวจสอบให้แน่ใจว่าคอนเทนเนอร์หลักถูกตั้งค่าเป็น "ล้น: ซ่อน" เช่นนั้น (ตรวจสอบให้แน่ใจว่าได้ตั้งตำแหน่งไว้แล้ว)

<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>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.