Bootstrap 4 tutorial

コンポーネント(4): カルーセル / 折り畳み / ドロップダウン

折り畳み

ボタンを用いてセレクタで指定した(隠れ)ターゲット要素の表示をON/OFFする。

基本例

設定例: 左は a , 右は button , どちらもその下の div.collapse#ex-collapse をON/OFF

div.collaps#ex-collapseAnim 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.

上の ボタンや ボタンも折り畳み機能を利用して作られている。

複数ターゲットの連動ON/OFF

ターゲットセレクタに(IDではなく)クラスを用いることにより複数ターゲットを同時にON/OFFすることができる。

例1: a を用いた場合(1,2単独はID、両方はクラスでターゲットを設定、詳細はソース参照)

(1) 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.
(2) 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.

例2: button を用いた場合

(1) 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.
(2) 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.

アコーディオン

表示にカードを用い、3つのテキストを交互に出し入れする組み合わせ応用例。

(1) Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.
(2) Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.
(3) Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.

.btn-(primary|secondary|success|info|warning|danger)

左側は通常のボタン、右端にドロップダウン用タブ(実際は2つの button 要素)

.btn-(lg|sm) を追加する。

(a|button).btn.btn-secondary.btn-lg

(Default)

(a|button).btn.btn-secondary.btn-sm

親として div.btn-group を用い、さらに .(dropup|dropright|dropleft) を追加する。

スプリット左ドロップだけ構造が若干異なる(一層多く必要)。

(バージョン4から)メニューアイテムとして button.dropdown-item が使える(リンクではないため選択してもデフォルト動作でページ移動しない)。

選択できない(テキスト表示のみの)アイテムを (span).dropdown-item-text で作成できる。またアイテムには任意のHTML要素やCSSを用いた書式設定を行うことができる。

アイテムに .active を設定するとアクティブ(青背景に白字)表示になる(次の2番目アイテム)。

アイテムに .disabled を設定すると灰色表示になる(次の2番目アイテム)。

ただしどちらも表示効果のみの設定で、.active を用いたドロップダウンで別のアイテムを選択してもアクティブアイテムは変更されない。また.disabled を設定したアイテムも選択可能で、要素が a の場合はページ移動もする(無効化されない)。これは上の2つのボタンで実際に確認することができる。

(応用) JavaScriptによる処理

これらを適切に処理するにはJavaScriptが必要になる。簡単な例を作ってみた。

アクティブアイテムは Item 1
 

デフォルトではドロップダウンメニューは親要素(起動ボタンでも同じ)の左端に揃えるが、ドロップダウンメニューに .dropdown-menu-right を設定すると右端同士が一致するように揃える。

メニューのヘッダには h6.dropdown-header を用いる。次の例では先頭の Dropdown header に設定している。リンク要素ではないため選択対象にはならない。

メニューアイテムの上下区切りには div.dropdown-divider を用いる。

ドロップダウンはメニュー選択用ではなくテキスト画面表示用にも利用できる。

アイテムとしてフォームを用いることもできる。

属性 data-offset="{x-offset-px},{y-offset-px}" を用いて表示位置の基準点を平行移動できる。

属性 data-reference="parent" を用いてメニュー表示の基準位置を親要素に変えることができる。スプリットボタンに用いると親(ボタングループ)を基準としてメニュー配置を行う。

属性 data-display="static" を設定すると(Popperによる動的位置判定を無効化して)常に下向きにドロップする。