div.carousel.slide
属性
div.carousel.slide
属性
id="{カルーセルID}"
を設定div.carousel-inner
は 基本構成 と同じa.carousel-control-prev
属性
href="#{carousel-id}"
data-slide="prev"
span.carousel-control-prev-icon
属性
aria-hidden="true"
span.sr-only
Previous
a.carousel-control-next
属性
href="#{carousel-id}"
data-slide="next"
span.carousel-control-next-icon
属性
aria-hidden="true"
span.sr-only
Next
div.carousel.slide
属性
id="{カルーセルID}"
ol.carousel-indicators
li
属性
data-target="#{カルーセルID}"
data-slide-to="{index}"
(index = 0,1,2, ...).active
を追加div.carousel-inner
は 前後コントロールの追加 と同じdiv.carousel.slide
に .carousel-fade
を追加ボタンを用いてセレクタで指定した(隠れ)ターゲット要素の表示をON/OFFする。
設定例: 左は a
, 右は button
, どちらもその下の div.collapse#ex-collapse
をON/OFF
div.collaps#ex-collapse
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
a
の場合: a.btn.btn-(primary|secondary|...)
属性
data-toggle="collapse"
href="#{ターゲットID}"
(ID以外のCSSセレクタも可)role="button"
button
の場合: button.btn.btn-(primary|secondary|...)
属性
type="button"
data-toggle="collapse"
data-target="#{ターゲットID}"
(ID以外のCSSセレクタも可)aria-expanded="false"
(初期状態で表示する場合 "true"
)aria-controls="{ターゲットID}"
.collapse
を設定(デフォルト状態は非表示).show
を追加id="{ターゲットID}"
ターゲットセレクタに(IDではなく)クラスを用いることにより複数ターゲットを同時にON/OFFすることができる。
構造a
の場合 href=".{ターゲットクラス}"
button
の場合 data-target=".{ターゲットクラス}"
class="{ターゲットクラス}"
を設定例1: a
を用いた場合(1,2単独はID、両方はクラスでターゲットを設定、詳細はソース参照)
Toggle (1)Toggle (2)Toggle (1)+(2)
例2: button
を用いた場合
表示にカードを用い、3つのテキストを交互に出し入れする組み合わせ応用例。
div
属性
id="{親ID}"
div.card
(ここから先が出し入れするアイテム: 個数分)
div.card-header
属性
id="{見出しID}"
h5
button.btn.btn-link
属性
data-toggle="collapse"
data-target="#{子ターゲットID}"
aria-expanded="false"
or "true"
(初期状態「開」の場合)aria-controls="{子ターゲットID}"
div.collapse
(アコーディオン操作でON/OFF) 属性
.show
を追加id="{子ターゲット子ID}"
data-parent="#{親ID}"
aria-labelledby="{見出しID}"
button
を用いる場合div.dropdown
(position: relative;
であれば他の要素も可)
a
を用いる場合ボタン用要素以外は同じ(異なる点のみ示す)。
a.btn.btn-(primary|secondary|success|info|warning|danger).dropdown-toggle
属性
href="..."
data-toggle="dropdown"
role="button"
id
, aria-haspopup
, aria-expanded
) は同じ.btn-(primary|secondary|success|info|warning|danger)
div.btn-group
左側は通常のボタン、右端にドロップダウン用タブ(実際は2つの button
要素)
div.btn-group
(注: スプリットボタンに .dropdown
を使うと間が空くため不適)
button.btn.btn-(primary|secondary|...)
Primary
button.btn.btn-(primary|secondary|...)
に次を設定
.dropdown-toggle-split
span.sr-only
Toggle Dropdown
.btn-(lg|sm)
を追加する。
(a|button).btn.btn-secondary.btn-lg
(Default)
(a|button).btn.btn-secondary.btn-sm
親として div.btn-group
を用い、さらに .(dropup|dropright|dropleft)
を追加する。
div.btn-group.dropup
div.btn-group.dropright
div.btn-group.dropleft
スプリット左ドロップだけ構造が若干異なる(一層多く必要)。
構造(スプリット左ドロップ)div.btn-group
div.btn-group.dropleft
属性
role="group"
button.btn.dropdown-toggle.dropdown-toggle-split ...
button.btn.dropdown-toggle
(バージョン4から)メニューアイテムとして button.dropdown-item
が使える(リンクではないため選択してもデフォルト動作でページ移動しない)。
選択できない(テキスト表示のみの)アイテムを (span).dropdown-item-text
で作成できる。またアイテムには任意のHTML要素やCSSを用いた書式設定を行うことができる。
アイテムに .active
を設定するとアクティブ(青背景に白字)表示になる(次の2番目アイテム)。
アイテムに .disabled
を設定すると灰色表示になる(次の2番目アイテム)。
ただしどちらも表示効果のみの設定で、.active
を用いたドロップダウンで別のアイテムを選択してもアクティブアイテムは変更されない。また.disabled
を設定したアイテムも選択可能で、要素が a
の場合はページ移動もする(無効化されない)。これは上の2つのボタンで実際に確認することができる。
これらを適切に処理するにはJavaScriptが必要になる。簡単な例を作ってみた。
id="active-disabled-example"
.active
、アイテム5を.disabled
に設定span#active-indicator
で現在のアクティブアイテムを表示// Dropdown: Active/disabled states demo
$('#active-disabled-example').delegate('a', 'click', function(event) {
var item = $(this);
event.preventDefault(); // prevent default link behaviors
if (item.hasClass('disabled')) return; // implement disabled behaviors
// update the active item
$('#active-disabled-example a').removeClass('active');
item.addClass('active');
$('#active-indicator').text(item.text());
});
click
イベントハンドラを親(ドロップダウンメニュー)に設定
a
にデリゲート(子アイテムが個別に受けるより効率的)event.preventDefault()
でデフォルト動作を阻止
a
の場合必須 - これがないと(先頭に)ジャンプするbutton
の場合は不要.disabled
が設定されていれば何もしない(return).active
を削除.active
を追加デフォルトではドロップダウンメニューは親要素(起動ボタンでも同じ)の左端に揃えるが、ドロップダウンメニューに .dropdown-menu-right
を設定すると右端同士が一致するように揃える。
メニューのヘッダには h6.dropdown-header
を用いる。次の例では先頭の Dropdown header に設定している。リンク要素ではないため選択対象にはならない。
メニューアイテムの上下区切りには div.dropdown-divider
を用いる。
ドロップダウンはメニュー選択用ではなくテキスト画面表示用にも利用できる。
div.dropdown
アイテムとしてフォームを用いることもできる。
div.dropdown
button.btn.btn-secondary.dropdown-toggle
div.dropdown-menu
form
属性
.px-4.py-3
div.dropdown-divider
属性 data-offset="{x-offset-px},{y-offset-px}"
を用いて表示位置の基準点を平行移動できる。
div.dropdown
button.btn.btn-secondary.dropdown-toggle
data-offset="100,20"
属性 data-reference="parent"
を用いてメニュー表示の基準位置を親要素に変えることができる。スプリットボタンに用いると親(ボタングループ)を基準としてメニュー配置を行う。
div.btn-group
button.btn.btn-secondary.dropdown-toggle
button.btn.btn-secondary.dropdown-toggle.dropdown-toggle-split
data-reference="parent"
属性 data-display="static"
を設定すると(Popperによる動的位置判定を無効化して)常に下向きにドロップする。
div.dropdown
button.btn.btn-secondary.dropdown-toggle
data-display="static"