Twitterブートストラップドロップダウンが画面の外に出る


151

Twitterブートストラップドロップダウンメニューを実装したいのですが、これが私のコードです。

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

ドロップダウンは適切に機能し、ドロップダウンは画面の右端の隣に配置されます。ドロップダウントグルをクリックすると、リストが画面の外に出ます。次のような画面になります。

ここに画像の説明を入力してください

どうすれば修正できますか?


この質問に対する正しい答え(ブートストラップ> = v 3.2.0の場合)は、@ cvrebertによるstackoverflow.com/questions/23654962/…で解決されています。
Michael Trouw 2016年

私はあなたのコードに終了スパンタグがないと信じています:</ span>
stealthysnacks '07

回答:


261

に追加.pull-rightするul.dropdown-menu必要があります

非推奨のお知らせ: Bootstrap v3.1.0以降.pull-right、ドロップダウンメニューは非推奨になりました。メニューを右揃えするには、を使用します.dropdown-menu-right


29
それは完全に別の質問です
デウェイン2013

14
ユーザーがいくつかの小さな画面のデバイスを使用している場合、この回答は実際には問題を解決しません-右側ではなく左側から出ています(実際には、プル左をプル右に変更するだけです)。
2013年

5
Bootstrap.pull-rightのサポートが終了したため、krzychuの回答をご覧ください
Jeroen 14

1
@HristoEnev私も。ドロップダウンがボタンから外れましたか?
Choylton B. Higginbottom

116

Bootstrap v3.1.0以降.pull-right、ドロップダウンメニューでの追加は非推奨になりました。Aは.dropdown-menu-rightに追加する必要がありますul.dropdown-menu代わりに。文書


10
最新のブートストラップを使用しても、.pull-rightは機能し、.dropdown-menu-rightは機能しません。
シェーングラント

これは確かにBootstrap 4で機能しますが、クラス.dropdown-menu-rightを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を使用しています。
ゼス

14

CSSのみでHTMLを変更する必要がないソリューション

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

推奨クラスdropdown-menu-rightを最後の要素に常に追加できるとは限らない、動的に生成されるメニューに特に便利です。


1
これは、ブートストラップ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では、.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>


0

SOレベルが低すぎるため、コメントを残すことはできませんが、親コンテナーが "overflow:hidden"に設定されていることを確認しました(位置も設定されていることを確認してください)。

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