Bootstrap4.xの使い方をBootstrap3.xからの変更箇所を交えて解説しています。
テーブル(Tables) v4.0.0一部変更v4.1.0追加
Bootstrapを使ったテーブルの選択スタイル(JavaScriptプラグインで広く使用されている)のドキュメントと例。
基本のテーブル(Example)
カレンダーや日付選択ツールなどのサードパーティ製ウィジェットで <table> 要素が広く使用されているため、Bootstrapのテーブル(表)はオプトイン(同意式)で設計。基本クラスの .table を任意の <table> に追加して、オプションの修飾子クラスやカスタムスタイルで拡張させる。すべてのテーブルのスタイルは、Bootstrap4で継承される。つまり、入れ子になったテーブルは、親テーブルと同じスタイルが継承される。
※マークアップのないベースのテーブルのスタイルはRebootに掲載。
デフォルトのテーブル
最も基本的なテーブルのマークアップを使用して、Bootstrapで .table ベースのテーブルがどのように見えるかを次に表示。
見本
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table">
<caption>テーブルの表題</caption>
<thead>
<tr>
<th>#</th>
<th scope="col">見出し</th>
...
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>テーブルのセル</td>
...
</tr>
...
</tbody>
</table>
【設定】
table.table> [<thead>><tr>><th>]《見出し》 + [<tbody>><tr>><th>+<td>]《コンテンツ》
※<table>タグの中に.tableを入れる
【アクセシビリティの設定】
- 行(右)方向に対する見出しの
<th>タグにはscope="row"を入れる - 列(下)方向に対する見出しの
<th>タグにはscope="col"を入れる
暗めのテーブル v4.0.0新設
.table-dark を使用して、暗い背景の明るいテキストに色を反転することも可能。
見本
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-dark">
...
</table>
【設定】
table.tableに.table-darkを追加
見出しのオプション(Table head options)v4.0.0新設
デフォルトや暗めのテーブルと同様に、修飾子クラス .thead-light や .thead-dark を使って、<thead> を明るめや暗めの灰色にする。
見本
●暗めの見出し .thead-dark
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル |
●明るめの見出し .thead-light
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
暗めの見出し<table class="table">
<thead class="thead-dark">
...
</table>
明るめの見出し<table class="table">
<thead class="thead-light">
...
</table>
【設定】
<thead>タグに.thead-{dark|light}を入れる
行が縞ストライブのテーブル(Striped rows)
.table-striped を使用して、<tbody> 内のテーブル行に縞ストライブを追加。
見本
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル |
●暗めのテーブルで設定
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-striped">
...
</table>
【設定】
table.tableに.table-stripedを追加すると、<tbody>内の行の背景色が交互に変わるようになる
縦罫線が入ったテーブル(Bordered table)
テーブルとセルのすべての辺に罫線用の .table-bordered を追加。
見本
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルの結合セル | テーブルのセル | |
●暗めのテーブルで設定
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルの結合セル | テーブルのセル | |
設定例
<table class="table table-bordered">
...
</table>
【設定】
table.tableに.table-borderedを追加
罫線のないテーブル(Borderless table)v4.1.0新設
.table-borderless を追加すると、罫線のないテーブルになる。
見本
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルの結合セル | テーブルのセル | |
●暗めのテーブルで設定
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルの結合セル | テーブルのセル | |
設定例
<table class="table table-borderless">
...
</table>
【設定】
table.tableに.table-borderlessを追加- ※v4.0.0までの裏技(罫線を消したいセルの各
<td>や<th>タグに.border-top-0等を入れる)は削除
行がホバー表示するテーブル(Hoverable rows)
.table-hover を追加すると、<tbody> 内のテーブル行でホバー状態が有効になる。
見本
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル |
●暗めのテーブルで設定
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-hover">
...
</table>
【設定】
table.tableに.table-hoverを追加すると、<tbody>内の行にカーソルを合わせるとその行の背景色が変わるようになる
セル間が狭いテーブル(Small table)v4.0.0名称変更
.table-sm を追加して、セルの padding を半分にカットしてテーブルをコンパクトにする。
見本
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル |
●暗めのテーブルで設定
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル |
Bootstrap3.xの設定例 赤背景が変更箇所
<table class="table table-condensed">
...
</table>
Bootstrap4.xの設定例 緑背景が変更箇所
<table class="table table-sm">
...
</table>
【設定】
table.tableに.table-smを追加
【変更履歴】
- 【v4.0.0】
.table-condensed⇒.table-smに名称変更
カラーバリエーション(Contextual classes)
1. コンテキストクラスで設定 v4.0.0名称変更
コンテキストクラスを使用して、テーブルの行や個々のセルに色を付ける。
カラーバリエーションの種類
●行の場合
| タイプ | クラス名 | 見出し | 見出し |
|---|---|---|---|
| Active | .table-active v4.0.0名称変更 |
テーブルのセル | テーブルのセル |
| Primary | .table-primary v4.0.0追加 |
テーブルのセル | テーブルのセル |
| Secondary | .table-secondary v4.0.0追加 |
テーブルのセル | テーブルのセル |
| Success | .table-success v4.0.0名称変更 |
テーブルのセル | テーブルのセル |
| Info | .table-info v4.0.0名称変更 |
テーブルのセル | テーブルのセル |
| Warning | .table-warning v4.0.0名称変更 |
テーブルのセル | テーブルのセル |
| Danger | .table-danger v4.0.0名称変更 |
テーブルのセル | テーブルのセル |
| Light | .table-light v4.0.0追加 |
テーブルのセル | テーブルのセル |
| Dark | .table-dark v4.0.0追加 |
テーブルのセル | テーブルのセル |
| ※デフォルト(参考) | 設定なし | テーブルのセル | テーブルのセル |
●セルの場合
| タイプ | クラス名 | 見出し | 見出し |
|---|---|---|---|
| Active | .table-active v4.0.0名称変更 |
テーブルのセル | テーブルのセル |
| Primary | .table-primary v4.0.0追加 |
テーブルのセル | テーブルのセル |
| Secondary | .table-secondary v4.0.0追加 |
テーブルのセル | テーブルのセル |
| Success | .table-success v4.0.0名称変更 |
テーブルのセル | テーブルのセル |
| Info | .table-info v4.0.0名称変更 |
テーブルのセル | テーブルのセル |
| Warning | .table-warning v4.0.0名称変更 |
テーブルのセル | テーブルのセル |
| Danger | .table-danger v4.0.0名称変更 |
テーブルのセル | テーブルのセル |
| Light | .table-light v4.0.0追加 |
テーブルのセル | テーブルのセル |
| Dark | .table-dark v4.0.0追加 |
テーブルのセル | テーブルのセル |
| ※デフォルト(参考) | 設定なし | テーブルのセル | テーブルのセル |
Bootstrap3.xの設定例 赤背景が変更箇所
行の場合<tr class="active">
<th scope="col">見出し</th>
<td>...</td>
</tr>
セルの場合<tr>
<th class="active" scope="col">見出し</th>
<td class="active">...</td>
</tr>
Bootstrap4.xの設定例 緑背景が変更箇所
行の場合<tr class="table-active">
<th scope="col">見出し</th>
<td>...</td>
</tr>
セルの場合<tr>
<th class="table-active" scope="col">見出し</th>
<td class="table-active">...</td>
</tr>
【設定】
- 行全体(
<tr>)、セル(<th>,<td>)に.table-{themecolor}(上記の「カラーバリエーションの種類」から選択)を入れる {themecolor}は、active,primary,secondary,success,info,warning,danger,light,darkのいずれかを選択
【注意】
<tr>に.table-darkを追加した場合と、<th>,<td>に.table-darkを追加した場合(暗めのテーブルと同じ)では背景色、枠線色が異なる
【変更履歴】
- 【v4.0.0】
- Active:
.active⇒.table-activeに名称変更 - Success:
.success⇒.table-successに名称変更 - Info:
.info⇒.table-infoに名称変更 - Warning:
.warning⇒.table-warningに名称変更 - Danger:
.danger⇒.table-dangerに名称変更
- Active:
2. 背景色ユーティリティクラスで設定 v4.0.0新設
デフォルトのテーブルの背景色は、暗めのテーブルでは使用できないが、テキストや背景色ユーティリティクラスを使用して同様のスタイルを実現。
背景色の種類
| タイプ | クラス名 | 見出し | 見出し |
|---|---|---|---|
| Primary | .bg-primary |
テーブルのセル | テーブルのセル |
| Secondary | .bg-secondary |
テーブルのセル | テーブルのセル |
| Success | .bg-success |
テーブルのセル | テーブルのセル |
| Info | .bg-info |
テーブルのセル | テーブルのセル |
| Warning | .bg-warning |
テーブルのセル | テーブルのセル |
| Danger | .bg-danger |
テーブルのセル | テーブルのセル |
| Light | .bg-light.text-dark |
テーブルのセル | テーブルのセル |
| Dark | .bg-dark |
テーブルのセル | テーブルのセル |
| ※デフォルト(参考) | 設定なし | テーブルのセル | テーブルのセル |
設定例
行の場合<table class="table table-dark">
<tr class="bg-primary">
<td>...</td>
</tr>
</table>
セルの場合<table class="table table-dark">
<tr>
<td class="bg-primary">...</td>
</tr>
</table>
【設定】
- 行全体(
<tr>)、セル(<th>,<td>)に.bg-{themecolor}(背景色ユーティリティクラスから選択)を入れる
【注意】
- 暗めのテーブルだけでなく、デフォルトのテーブルでも文字や背景色のユーティリティの使用は可能
支援技術にカラー名の意味を伝えること
カラー名を使用して意味を追加すれば視覚的な指示が提供されるが、これはスクリーンリーダーなどの支援技術のユーザーには伝わらない。カラー名で示される情報がコンテンツ自体(可視テキストなど)から明らかであるか、または .sr-only クラスで隠された追加のテキストなどの代替手段を入れるようにすること。
キャプション(Captions)
<caption> はテーブルの表題のように機能。スクリーンリーダーを持つユーザーがテーブルを見つけて、それが何であるかを理解し、それを読むかどうかを決定するのに役立つ。
見本
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table">
<caption>テーブルの表題</caption>
...
</table>
【設定】
table.table><caption>(表題はテーブルの下に表示される)
【変更履歴】
- 【v4.0.0】
<caption>の表示位置がテーブルの下になった(table.tableでの設定ではなく、Rebootの仕様)。
レスポンシブテーブル(Responsive tables)
レスポンステーブルを使用すると、テーブルを簡単に水平方向にスクロール可能。 .table を .table-responsive で囲むことによって、すべてのビューポートでレスポンシブ可能なテーブルを作成するか、最大幅のブレークポイントを持つレスポンシブテーブルを作成する場合は .table-responsive{-sm|-md|-lg|-xl} から選択。
垂直クリップ/切り捨て
レスポンシブテーブルは、overflow-y: hidden を使用し、テーブルの下端や上端を超えるコンテンツをクリップする(切り取る)。これで特にドロップメニューや他のサードパーティ製のウィジェットを切り捨てることが可能。
常にレスポンシブ(Always responsive)v4.0.0設定変更
すべてのブレークポイントにわたって、テーブルを水平にスクロールするために .table-responsive を使用。
見本
| # | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し |
|---|---|---|---|---|---|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
●セル内で文章を折り返さないようにする(裏技)
| # | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し |
|---|---|---|---|---|---|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
●セルの幅100%での表示(裏技)デフォルトのテーブルと同じ列の数での設定
| # | 見出し | 見出し | 見出し |
|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<div class="table-responsive">
<table class="table">
...
</table>
</div>
セル内で文章を折り返さない<div class="table-responsive">
<table class="table text-nowrap">
...
</table>
</div>
セルの幅100%での表示<table class="table table-responsive">
...
</table>
【設定】
div.table-responsive>table.table- テーブルがコンテナよりも広いときは、必要に応じてセルを折り返すので、
table.tableに.text-nowrapを追加すると、セルを折り返さずに表示される - テーブルの幅がコンテナ幅より狭いときは、コンテナ幅100%でなくセルの幅100%での表示にしたい場合は、
table.tableに.table-responsiveを追加(.table.table-borderedでは不可)
【変更履歴】
- 【v4.0.0】
- v3の
.table-responsiveは、.table-responsive-mdに変更 .table-responsive:ビューポートが768px以下でテーブルがコンテナよりも広いときは水平にスクロール表示⇒全てのビューポートでテーブルがコンテナよりも広いときはセルを折り返して表示
- v3の
特定のブレークポイント(Breakpoint specific)v4.0.0新設
必要に応じて .table-responsive{-sm|-md|-lg|-xl} を使用して、特定のブレークポイントまでのレスポンシブテーブルを作成。そのブレークポイント以降では、テーブルは正常に動作し、水平方向にスクロールしない。
これらのテーブルは、レスポンススタイルが特定のビューポートの幅に適用されるまで、破損しているように見える場合がある。
.table-responsive{-sm|-md|-lg|-xl} で任意の .table をラップすることによりレスポンシブ可能なテーブルを作成し、576px、768px、992px、1120pxまでの各 max-width のブレークポイントでテーブルを水平方向にスクロールさせる。
min- および max- プレフィックスとビューポートの分数幅(高dpiデバイスでは特定の条件下で発生する可能性がある)の制限を回避する。
見本 ※画面からはみ出す部分は非表示にしています
●ビューポートが575px以下で、テーブルの幅がコンテナよりも広いときは水平スクロールが表示 .table-responsive-sm
| # | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し |
|---|---|---|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
●ビューポートが767px以下で、テーブルの幅がコンテナよりも広いときは水平スクロールが表示 .table-responsive-md
| # | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し |
|---|---|---|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
●ビューポートが991px以下で、テーブルの幅がコンテナよりも広いときは水平スクロールが表示 .table-responsive-lg
| # | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し |
|---|---|---|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
●ビューポートが1199px以下で、テーブルの幅がコンテナよりも広いときは水平スクロールが表示 .table-responsive-xl
| # | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し |
|---|---|---|---|---|---|---|
| 1 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
| 2 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
| 3 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<div class="table-responsive-sm">
<table class="table">
...
</table>
</div>
【設定】
- ビューポートに応じて、水平スクロール表示にする場合は、
table.tableをdiv.table-responsive-{breakpoint}で囲む{breakpoint}(sm(小),md(中),lg(大),xl(特大),xxl(超特大)のいずれかを選択)は、グリッド・システムのビューポイントに準ずる
【注意】
- 指定したビューポート以上でテーブルの幅がコンテナよりも広いときは、はみ出して表示される