Dropdowns
Dropdowns(ドロップダウン)はプラグインを使用して, リンクのリストなどを表示するコンテキストオーバーレイを切り替えます。ドロップダウンの使い方の例を示します。
Overview
ドロップダウンはトグルが可能で, リンクのリストなどを表示するためのコンテキストオーバーレイです。 ドロップダウンJavaScriptプラグインとインタラクティブになっています。 ホバリングではなく, クリックすることでトグルされます。 an intentional design decision.
ドロップダウンはサードパーティのライブラリ ( Popper.js ) に構築され, 動的な位置決めと viewport の検出が可能です。
bootstrap.min.js
や bootstrap.js
などのブートストラップのJavascriptの前に popper.min.js を組み込むか, 代わりにPopper.jsを内部に含む bootstrap.bundle.min.js
や bootstrap.bundle.js
を使用する。 Popper.jsは, 動的位置決めが必要ないので, ナビゲーションバーのドロップダウンの位置を決めるためには使用されません。
Accessibility
WAI ARIA 標準は実際の role="menu"
widget を定義しますが,アクションや機能をトリガするアプリケーションのようなメニューに特有のものです。ARIA メニューには, チェックボックス, ラジオボタン, ラジオボタングループ, サブメニューしか含めることができません。
ブートストラップのドロップダウンは汎用的で, さまざまな状況やマークアップ構造に適用できるように設計されています。 たとえば, 検索フィールドやログインフォームなどの追加の入力とフォームコントロールを含むドロップダウンを作成することができます。 ARIA メニューに必要な role
と aria-
属性のいずれも期待していません。 これらのより具体的な属性自体を含める必要があります。
しかし, Bootstrapは, カーソルキーを使用して個々の .dropdown-item
要素を移動し, ESC キーを使用してメニューを閉じる機能など, ほとんどの標準的なキーボードメニューのやり取りの組み込みのサポートを追加します 。
Examples
ドロップダウンのトグル(あなたのボタンまたはリンク)と .dropdown
内のドロップダウンメニュー, または ` position:relative; ` を宣言する別の要素を囲みます。 ドロップダウンは, 潜在的なニーズに合わせて, <a>
または <button>
要素からトリガーできます。
.btn
はマークアップの変更によってドロップダウントグルに変換できます。<button>
要素を使ってそれらを動作させる方法は次のとおりです:
<a>
要素の場合は
任意のボタンでもこれを行うことができます:
シングルボタンと同じマークアップでドロップダウンを作成できます。 ドロップダウンキャレットに適切なスペースを入れるためには .dropdown-toggle-split
を適用します。
このクラスを使用してキャレットの両側にある水平の padding
を25%減らし, 通常のボタンのドロップダウンに追加された margin-left
を削除します。 これらの余分な変更はキャレットをスプリットボタンの中央に保ち, メインボタンの隣に適切なサイズのヒット領域を提供します。
Sizing
ドロップダウンは, すべてのサイズのボタンで機能します。
Directions
Dropup
親要素に .dropup
を追加して要素の上にあるドロップダウンメニューをトリガーします。
Dropright
親要素に .dropright
を追加することにより, 要素の右側にあるドロップダウンメニューをトリガーします。
Dropleft
親要素に .dropleft
を追加することにより, 要素の左側にあるドロップダウンメニューをトリガーします。
ドロップダウンメニューの内容はリンクになっていましたが, これはv4ではなくなりました。オプションで <a>
の代わりに <button>
要素をドロップダウンで使うことができます。
.dropdown-item-text
で非対話的なドロップダウン項目を作成することもできます。 カスタムCSSやテキストユーティリティを使用してさらにスタイルを設定できます。
Active
ドロップダウン内の項目に .active
を適用するとかきのように,アクティブなものとしてスタイルを設定できます。
Disabled
ドロップダウンリストの項目に .disabled
を適用すると非アクティブなスタイルを設定できます。
デフォルトではドロップダウンメニューは親の左側から100%の位置に自動的に配置されます。 .dropdown-menu-right
を .dropdown-menu
に加えてドロップダウンメニューを右揃えにします。
注意! Dropdown は Popper.js を利用しています(navbar の内部にある時を除く)
.dropdown-header
を適用するとヘッダーを作成する事ができます。
Dividers
.dropdown-divider
を適用すると関連する項目のグループ化ができます。
Text
テキストをドロップダウンメニューに配置しspacing utilities を使用します。
メニュー幅をカスタマイズするには, sizing
スタイルを追加する必要があります。
ドロップダウンメニュー内にフォームを挿入するか,ドロップダウンメニューを開き margin or padding utilitiesを使用して必要なネガティブスペースを与えます。
Dropdown options
data-offset
または data-reference
を使ってドロップダウンの位置を変更できます。
Usage
データ属性やJavaScript経由で,ドロップダウンプラグインは親リストアイテムの .show
クラスをトグルすると, 非表示のコンテンツ(ドロップダウン・メニュー)をトグルします。 data-toggle =" dropdown "
属性は, アプリケーションレベルでドロップダウンメニューを閉じるために使用されるので, 常に使用することをお勧めします。
タッチ対応デバイスではドロップダウンを開くと 空の( $ .noop
) mouseover
ハンドラが <body>
要素の直下の子に追加されます。
quirk in iOS’ event delegation を回避するためにはハックが必要です。
ドロップダウンを閉じるコードをトリガーすることからドロップダウンが閉じられると, これらの追加の空の mouseover
ハンドラーが削除されます。
Via data attributes
data-toggle =" dropdown "
をリンクやボタンに追加してドロップダウンを切り替えます。
Via JavaScript
JavaScript経由でドロップダウンを呼びます。
data-toggle="dropdown"
still required
JavaScriptを使用してドロップダウンを呼び出すか, 代わりにdata-apiを使用するかの両方で data-toggle =" dropdown "
は常にドロップダウンのトリガー要素に存在する必要があります。
Options
オプションはデータ属性またはJavaScriptを使用して渡すことができます。 データ属性の場合, オプション名を data-
に data-offset =" "
のように付加します。
Name |
Type |
Default |
Description |
offset |
number | string | function |
0 |
対象との相対的なオフセットを指定します。詳細は Popper.js の offset docs を参照してください。 |
flip |
boolean |
true |
リファレンス要素と被ってしまう際にフリップすることを許可するかを設定します。詳細は Popper.js の flip docs を参照してください。 |
boundary |
string | element |
'scrollParent' |
ドロップダウンメニューがオーバーフローした際に許容する境界を指定します。'viewport' , 'window' , 'scrollParent' , または HTML要素のリファレンス(JavaScriptのみ)を指定できます。詳細は Popper.js の preventOverflow docs を参照してください。 |
reference |
string | element |
'toggle' |
ドロップダウンメニューのリファレンス要素です。'toggle' , 'parent' , または HTML要素のリファレンスを指定できます。詳細は Popper.js の referenceObject docs を参照してください。 |
display |
string |
'dynamic' |
デフォルトでは動的な配置に Popper.js を使用しています。これを無効化するには, 'static' を指定してください。 |
boundary
が scrollParent
以外の値に設定されている場合, position:static
が .dropdown
コンテナに適用されます。
Methods
Method |
Description |
$().dropdown('toggle') |
指定された navbar 及びタブナビゲーションのドロップダウンメニューをトグルします。 |
$().dropdown('update') |
その要素のドロップダウンメニューの位置を更新します。 |
$().dropdown('dispose') |
その要素のドロップダウンメニューを削除します。 |
Events
ドロップダウンイベントは .dropdown-menu
の親要素で起動され, relatedTarget
プロパティを持ちます。その値はトグルアンカー要素です。
hide.bs.dropdown
と hidden.bs.dropdown
イベントにはクリックのイベントオブジェクトを含む clickEvent
プロパティ(元のイベントタイプが click
のときのみ)があります。
Event |
Description |
show.bs.dropdown |
このイベントは show インスタンスメソッドが呼ばれてすぐに発生します。 |
shown.bs.dropdown |
このイベントはドロップダウンメニューが表示された時に発生します(CSS による遷移を待機します)。 |
hide.bs.dropdown |
このイベントは hide インスタンスメソッドが呼ばれてすぐに発生します。 |
hidden.bs.dropdown |
このイベントはドロップダウンメニューが非表示になった時に発生します(CSSによる遷移を待機します)。 |