nav
属性
aria-label="Pagination example"
ul.pagination
li.page-item
a
属性
href="..."
Previous
, 1
, 2
, ... , Next
例: 前後ボタンにシンボル文字を用いる場合
li.page-item
«
span
属性
area-hidden="true"
前/Previous
li.page-item
»
span
属性
area-hidden="true"
次/Next
アイコンを用いる場合も同様: 次は Open Iconic の使用例(詳しくはソース参照)
各アイテムには状況に応じて無効化/アクティブの状態を設定する。次は最も一般的な条件の例。
li
に .page-item
を追加すれば内側のリンク a
は自動的に無効化される。
li.page-item
.disabled
を追加a
tabindex="-1"
を設定(タブストップを受けないようにする)Previous
(自動的に灰色表示)span.sr-only
を設定
(current)
例(1ページ目を表示している場合): Previous と 1 が無効化アイテム
li.list-item
に .active
を設定すればアイテムはアクティブ表示になる(Primary/青の背景)。しかし内部リンクは無効化されない。さらに.disabled
と一緒に設定しても効果がない(無効化の設定が優先してアクティブ表示しない)。
そこで構造を変更し、無効化アイテムにはリンク a
ではなく span
を用いれば根本的に解決できる。
li.page-item.(active|disabled)
span.page-link
( a.page-link
から変更)例(1ページ目の場合): Previous は無効化、1 はアクティブ、どちらもリンクがないのでアクションは受けない
リストの親 li.pagenation
に .pagination-(lg|sm)
を追加する。
.ul.pagination.pagination-lg
.ul.pagination
(デフォルト)
.ul.pagination.pagination-sm
Flexboxユーティリティの .justify-content-*
を用いる(⇒ .justify-content-* を用いた配置設定 )。
ul-pagination.justify-content-start
ul-pagination.justify-content-center
ul-pagination.justify-content-end
ポップオーバーは(iOSの同名機能と同様の)ポップアップ表示コンポーネント。実装に Popper.js を利用している。
ポップオーバーは初期状態はOFFになっており、有効にするためにはJavaScriptを用いた処理が必要。最も簡単なコード例を示す。
$('[data-toggle="popover"]').popover();
script
を使っても動作しない。jquery, popper.js, bootstrap.jsが事前に必要で、これら3つの後に設定(実行)すること。data-toggle="popover"
title="{タイトルテキスト}"
data-content="{本文テキスト}"
title
, data-content
は片方だけでもOK(どちらも値が空の場合は表示しない)設定例(クリックで表示、再クリックで表示終了)
"right"
)
data-placement=("top"|"right"|"bottom"|"left")
設定例
(デフォルトは)要素のクリックで表示したポップオーバーは同じ要素の再クリックで表示終了する。これにより複数同時表示が可能だが、逆に不自然(または不便)な場合もある。そのような場合は別の要素をクリックした時に表示終了(より正確にはフォーカスで表示ON/OFF)するように動作変更できる。
data-trigger="focus"
を設定(ブラウザ側が完全対応すれば将来的にはこれだけでOK)a
に限定( button
ではまだ動作保証できない)tabindex="0"
を必ず設定設定例
要素に属性 disabled
が設定されている場合ポップオーバーは効かなくなる。次の例は button
に下記の通り設定しているがポップオーバーは表示されない。
button.btn.btn-primary
属性
type="button"
data-toggle="popover"
(設定している)title="Disabled popover"
(これも設定、しかし...)disabled
(これを設定するとポップオーバーも無効化される)Disabled button
しかし disabled
は設定するが、ポップオーバーは効くようにしたいケースもある。その場合は親要素を作ってそこにポップオーバーを設定し、その中に disabled
を設定した要素を入れればよい。対応例は次の通り。
span
属性
.d-inline-block
( button
と同じ display
にする)data-toggle="popover"
title="Disabled popover"
button.btn.btn-primary
属性
type="button"
style="pointer-events: none;"
(ポインタイベントを受けないようにする)disabled
Disabled button
設定例: ボタンは disabled
だがポップオーバーは動作する(実際は親要素が処理している)。
progress
要素の代替を目的としたコンポーネントで、バーの積み重ねやアニメーション付きストライプバーなど progress
にはない追加機能を持つ。
div.progress
div.progress-bar
(複数積み重ね可) 属性
style="width: 50%"
role="progressbar"
aria-valuenow="50"
aria-valuemin="0"
aria-valuemax="100"
(1) カスタムスタイル style="width: {width}%”
style="width: 0%;"
style="width: 25%;"
style="width: 50%;"
style="width: 75%;"
style="width: 100%;"
(2) 幅設定ユーティリティ .w-(25|75|100)
(⇒ サイズユーティリティ 、25%ステップ)
.w-25
.w-50
.w-75
.w-100
バー div.progress-bar
の内部テキストを記述する。
ベースの div.progress
に設定する。
style="height: 5px;"
style="height: 10px;"
style="height: 15px;"
style="height: 20px;"
div.progress-bar
に背景色 .bg-{context}
を追加(⇒ 色 - 背景色 )
.bg-success
.bg-info
.bg-warning
.bg-danger
div.progress-bar
を複数用いれば左から右に積み重なる。
バーに .progress-bar-striped
を追加する。
さらに .progress-bar-animated
を追加する。