テーブル(Tables)
Bootstrapを使ったテーブルの選択スタイル(JavaScriptプラグインで広く使用されている)のドキュメントと例。
※"v5.0.0"での変更はv5.0.0-alpha版、v5.0.0-beta版での変更も含みます。
※"v5.3.0"での変更はv5.3.0-alpha版での変更も含みます。
デフォルトのテーブル(Overview)v5.2.0スタイル変更
カレンダーや日付選択ツールなどのサードパーティ製ウィジェットで <table>
要素が広く使用されているため、Bootstrapのテーブル(表)はオプトイン(同意方式)で設計。基本クラスの .table
を任意の <table>
に追加して、オプションの修飾子クラスやカスタムスタイルで拡張させる。すべてのテーブルスタイルがBootstrapで継承されるわけではなく、入れ子になったテーブルは、親から独立したスタイルが設定できる。
※マークアップのないベースのテーブルのスタイルはRebootに掲載。
最も基本的なテーブルのマークアップを使用して、Bootstrapで .table
ベースのテーブルがどのように見えるかを以下に表示。
見本 ※v4のテーブルのデザインはこちらに記載
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table">
<thead>
<tr>
<th>#</th>
<th scope="col">見出し</th>
<th scope="col">見出し</th>
<th scope="col">見出し</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>テーブルのセル</td>
<td>テーブルのセル</td>
<td>テーブルのセル</td>
</tr>
...
</tbody>
</table>
table.table>(thead>tr>th+th[scope=col]*3)+(tbody>tr*3>th[scope=row]+td*3)(見出し1行+3行×4列の場合)
【設定】
table.table
> [<thead>
><tr>
><th>
]《見出し》 + [<tbody>
><tr>
><th>
+<td>
]《コンテンツ》
※<table>
タグの中に.table
を入れる
【アクセシビリティの設定】
- 行(行末)方向に対する見出しの
<th>
タグにはscope="row"
を入れる - 列(下)方向に対する見出しの
<th>
タグにはscope="col"
を入れる
【変更履歴】
- 【v5.0.0-alpha1】よりシンプルなスタイルに変更
- セルの
border-top
の設定がなくなる thead
とtbody
の罫線の色が文字色になる- セルの
padding
が0.75rem⇒0.5remに変更
- セルの
- 【v5.2.0】
thead
とtbody
の仕切り線の太さで2pxの設定がなくなる(設定が必要な場合はテーブルグループの仕切り線を参照)
カラーバリエーション(Variants)
注意!テーブルバリエーションを生成するためのCSSがより複雑になっているため、カラーモード適応型スタイルはv6まで表示されない可能性が高い。
.table-{themecolor}
は .bg-{themecolor}-subtle.text-body-emphasis
で代用すればダークモードにも対応できる(.table-active
は .bg-dark-subtle.text-body-emphasis
で代用可能)table.table
)、行全体(<tr>
)、セル(<th>
, <td>
)に背景色ユーティリティクラス .bg-{color}
(文字色ユーティリティクラス .text-{color}
)や文字&背景色ヘルパークラス .text-bg-{themecolor}
を入れても反映されなくなった
1. コンテキストクラスで設定 v5.0.0-alpha1一部スタイル変更
コンテキストクラスを使用して、テーブル、テーブルの行、個々のセルに色を付ける。
カラーバリエーションの種類
タイプ | クラス名 | 見出し | 見出し |
---|---|---|---|
Active | .table-active |
テーブルのセル | テーブルのセル |
Primary | .table-primary |
テーブルのセル | テーブルのセル |
Secondary | .table-secondary |
テーブルのセル | テーブルのセル |
Success | .table-success |
テーブルのセル | テーブルのセル |
Danger | .table-danger |
テーブルのセル | テーブルのセル |
Warning | .table-warning |
テーブルのセル | テーブルのセル |
Info | .table-info |
テーブルのセル | テーブルのセル |
Light | .table-light |
テーブルのセル | テーブルのセル |
Dark | .table-dark |
テーブルのセル | テーブルのセル |
※デフォルト(参考) | 設定なし | テーブルのセル | テーブルのセル |
設定例
テーブル全体の場合<table class="table table-active">
<tr>
<td>...</td>
</tr>
</table>
行の場合<table class="table">
<tr class="table-active">
<td>...</td>
</tr>
</table>
セルの場合<table class="table">
<tr>
<td class="table-active">...</td>
</tr>
</table>
【設定】
- テーブル全体(
table.table
)、行全体(<tr>
)、セル(<th>
,<td>
)に.table-{themecolor}
(上記の「背景色の種類」から選択)を入れる{themecolor}
は、active
,primary
,secondary
,success
,danger
,warning
,info
,light
,dark
のいずれかを選択
.table-active
は、特定の行やセルの強調表示に使用
【変更履歴】
- 【v5.0.0-alpha1】
<tr>
に.table-dark
を追加した場合と、<th>
,<td>
に.table-dark
を追加した場合では背景色、枠線色が異なる現象が解消.table-{themecolor}
独自のborder-color
の設定がなくなる
2. 背景色ユーティリティクラスで設定
文字色や背景色ユーティリティクラスを使用して同様のスタイルを実現。
背景色の種類
タイプ | クラス名 | 見出し | 見出し |
---|---|---|---|
Primary | .bg-primary.text-body-emphasis |
テーブルのセル | テーブルのセル |
淡いPrimary v5.3.0追加 | .bg-primary-subtle.text-body-emphasis |
テーブルのセル | テーブルのセル |
Secondary | .bg-secondary.text-body-emphasis |
テーブルのセル | テーブルのセル |
淡いSecondary v5.3.0追加 | .bg-secondary-subtle.text-body-emphasis |
テーブルのセル | テーブルのセル |
Success | .bg-success.text-body-emphasis |
テーブルのセル | テーブルのセル |
淡いSuccess v5.3.0追加 | .bg-success-subtle.text-body-emphasis |
テーブルのセル | テーブルのセル |
Danger | .bg-danger.text-body-emphasis |
テーブルのセル | テーブルのセル |
淡いDanger v5.3.0追加 | .bg-danger-subtle.text-body-emphasis |
テーブルのセル | テーブルのセル |
Warning | .bg-warning.text-body-emphasis |
テーブルのセル | テーブルのセル |
淡いWarning v5.3.0追加 | .bg-warning-subtle.text-body-emphasis |
テーブルのセル | テーブルのセル |
Info | .bg-info.text-body-emphasis |
テーブルのセル | テーブルのセル |
淡いInfo v5.3.0追加 | .bg-info-subtle.text-body-emphasis |
テーブルのセル | テーブルのセル |
Light | .bg-light.text-black |
テーブルのセル | テーブルのセル |
淡いLight v5.3.0追加 | .bg-light-subtle.text-body-emphasis |
テーブルのセル | テーブルのセル |
Dark | .bg-dark.text-white |
テーブルのセル | テーブルのセル |
淡いDark v5.3.0追加 | .bg-dark-subtle.text-body-emphasis |
テーブルのセル | テーブルのセル |
Black v5.1.0追加 | .bg-black.text-white |
テーブルのセル | テーブルのセル |
White | .bg-white.text-black |
テーブルのセル | テーブルのセル |
※デフォルト(参考) | 設定なし | テーブルのセル | テーブルのセル |
設定例
テーブル全体の場合<table class="table bg-primary">
<tr>
<td>...</td>
</tr>
</table>
行の場合<table class="table">
<tr class="bg-primary text-body-emphasis">
<td>...</td>
</tr>
</table>
セルの場合<table class="table">
<tr>
<td class="bg-primary text-body-emphasis">...</td>
</tr>
</table>
【設定】
- テーブル全体(
table.table
)、行全体(<tr>
)、セル(<th>
,<td>
)に.bg-{color}
(背景色ユーティリティクラスから選択)を入れる
【注意】
- 文字色は自動で設定されないので、
.bg-{color}
に適宜文字色のユーティリティを追加すること(.text-body-emphasis
を入れればライトモード、ダークモード双方に対応可能)
3. 文字&背景色ヘルパークラスで設定 v5.2.0新設
文字&背景色ヘルパークラスを使用して同様のスタイルを実現。
背景色の種類
タイプ | クラス名 | 見出し | 見出し |
---|---|---|---|
Primary | .text-bg-primary |
テーブルのセル | テーブルのセル |
Secondary | .text-bg-secondary |
テーブルのセル | テーブルのセル |
Success | .text-bg-success |
テーブルのセル | テーブルのセル |
Danger | .text-bg-danger |
テーブルのセル | テーブルのセル |
Warning | .text-bg-warning |
テーブルのセル | テーブルのセル |
Info | .text-bg-info |
テーブルのセル | テーブルのセル |
Light | .text-bg-light |
テーブルのセル | テーブルのセル |
Dark | .text-bg-dark |
テーブルのセル | テーブルのセル |
※デフォルト(参考) | 設定なし | テーブルのセル | テーブルのセル |
設定例
テーブル全体の場合<table class="table text-bg-primary">
<tr>
<td>...</td>
</tr>
</table>
行の場合<table class="table">
<tr class="text-bg-primary">
<td>...</td>
</tr>
</table>
セルの場合<table class="table">
<tr>
<td class="text-bg-primary">...</td>
</tr>
</table>
【設定】
- テーブル全体(
table.table
)、行全体(<tr>
)、セル(<th>
,<td>
)に.text-bg-{themecolor}
(文字&背景色ヘルパークラスから選択)を入れる
.visually-hidden
クラスで非表示にした追加テキストなどの代替手段を入れるように心がけて下さい。
アクセント付きテーブル(Accented tables)
行が縞ストライブのテーブル(Striped rows)
.table-striped
を使用して、<tbody>
内のテーブル行に縞ストライブを追加。
1. デフォルトのテーブルに設定
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-striped">
...
</table>
これらのクラスは、カラーバリエーション・テーブルにも追加できる。
2. Darkのテーブルに設定
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-dark table-striped">
...
</table>
3. Successのテーブルに設定
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-success table-striped">
...
</table>
4. 背景色ユーティリティを使用したテーブルに設定
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table bg-warning text-body-emphasis table-striped">
...
</table>
5. 淡い背景色ユーティリティを使用したテーブルに設定
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table bg-danger-subtle table-striped">
...
</table>
【設定】
table.table
に.table-striped
を追加すると、<tbody>
内の行の背景色が交互に変わるようになる
列が縞ストライブのテーブル(Striped columns)v5.2.0新設
.table-striped-columns
を使用して、任意のテーブル列に縞ストライブを追加する。
1. デフォルトのテーブルに設定
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-striped-columns">
...
</table>
これらのクラスは、カラーバリエーション・テーブルにも追加できる。
2. Darkのテーブルに設定
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-dark table-striped-columns">
...
</table>
3. Successのテーブルに設定
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-success table-striped-columns">
...
</table>
4. 背景色ユーティリティを使用したテーブルに設定
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table bg-warning text-body-emphasis table-striped-columns">
...
</table>
【設定】
table.table
に.table-striped-columns
を追加すると、<tbody>
内の列の背景色が交互に変わるようになる
行がホバー表示するテーブル(Hoverable rows)
.table-hover
を追加すると、<tbody>
内のテーブル行でホバー状態が有効になる。
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
Darkのテーブルで設定(.table.table-dark.table-hover
)
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-hover">
...
</table>
ホバー表示できる行は、行が縞ストライブのテーブルと組み合わせられる。
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-striped table-hover">
...
</table>
【設定】
table.table
に.table-hover
を追加すると、<tbody>
内の行にカーソルを合わせるとその行の背景色が変わるようになる
強調表示するテーブル(Active tables)v5.0.0-alpha1新設
.table-active
クラスを追加して、テーブルの行やセルを強調表示。
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルの結合セル | テーブルのセル |
Darkのテーブルで設定(.table.table-dark
)
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルの結合セル | テーブルのセル |
設定例
<table class="table">
<thead>
...
</thead>
<tbody>
<tr class="table-active">
...
</tr>
<tr>
...
</tr>
<tr>
<th scope="row">3</th>
<td colspan="2" class="table-active">テーブルの結合セル</td>
<td>テーブルのセル</td>
</tr>
</tbody>
</table>
【設定】
- 強調したいセルに
.table-active
を追加(カラーバリエーションテーブルでも設定可)
カラーバリエーションやアクセント付きテーブルのしくみ(How do the variants and accented tables work?)v5.0.0-alpha1新設
アクセント付きテーブル(行が縞ストライブ、列が縞ストライブ、行でホバー表示可能、強調表示のテーブル)については、いくつかの手法を使用して、すべてのカラーバリエーション・テーブルでこれらの効果を機能させた。
- 始めに
--bs-table-bg
カスタムプロパティでテーブルセルの背景色を設定する。次に、すべてのカラーバリエーション・テーブルにそのカスタムプロパティを設定して、テーブルセルに色を付ける。これにより、テーブルの背景に半透明の色を使用しても問題が発生しない。 - そして、
box-shadow: inset 0 0 9999px var(---bs-table-bg--state, var(---bs-table-bg--type, var(---bs-table-accent-bg));
でテーブルセル上にインセント・ボックスシャドウをつけて、任意に指定したbackground-color
と重ねている。これは、CSSの指定に関係なく、カスタムカスケードを使ってbox-shadow
を上書きしている。巨大な広がりを持ち、ぼかしを使わないので、色はモノトーンになる。デフォルトでは--bs-table-accent-bg
がtransparent
(透過)に設定されているので、デフォルトのボックスシャドウはない。 .table-striped
,.table-striped-columns
,.table-hover
,.table-active
クラスのいずれかが追加されると、--bs-table-bg-type
か--bs-table-bg-state
(デフォルトではinitial
(初期値)に設定)に半透明色(--bs-table-striped-bg
,--bs-table-active-bg
,--bs-table-hover-bg
)が設定され、背景色が設定されてデフォルトの--bs-table-accent-bg
が再定義される。- カラーバリエーション・テーブルごとに、そのコントラストが最も高い
--bs-table-accent-bg
カラーを生成。例えば.table-primary
は暗めのアクセントカラーで、.table-dark
は明るめのアクセントカラーになる。 - テキストと罫線の色は同じ方法で生成され、それらの色はデフォルトで継承される。
舞台裏では次のようになっている:
デフォルトの設定
scss/mixins/_table-variants.scss 内 table-variant の設定@mixin table-variant($state, $background) {
.table-#{$state} {
$color: color-contrast(opaque($body-bg, $background));
$hover-bg: mix($color, $background, percentage($table-hover-bg-factor));
$striped-bg: mix($color, $background, percentage($table-striped-bg-factor));
$active-bg: mix($color, $background, percentage($table-active-bg-factor));
$table-border-color: mix($color, $background, percentage($table-border-factor));
--#{$prefix}table-color: #{$color};
--#{$prefix}table-bg: #{$background};
--#{$prefix}table-border-color: #{$table-border-color};
--#{$prefix}table-striped-bg: #{$striped-bg};
--#{$prefix}table-striped-color: #{color-contrast($striped-bg)};
--#{$prefix}table-active-bg: #{$active-bg};
--#{$prefix}table-active-color: #{color-contrast($active-bg)};
--#{$prefix}table-hover-bg: #{$hover-bg};
--#{$prefix}table-hover-color: #{color-contrast($hover-bg)};
color: var(--#{$prefix}table-color);
border-color: var(--#{$prefix}table-border-color);
}
}
【注意】
- Internet Explorerのサポートを廃止したのでCSSカスタムプロパティによる設定方法が可能になった
テーブルの罫線(Table borders)
縦罫線が入ったテーブル(Bordered tables)
1. デフォルトのテーブルの設定
テーブルとセルのすべての辺に罫線用の .table-bordered
を追加。
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルの結合セル | テーブルのセル |
Darkのテーブルで設定(.table.table-dark.table-bordered
)
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルの結合セル | テーブルのセル |
設定例
<table class="table table-bordered">
...
</table>
2. 罫線の色ユーティリティクラスを使用 v5.0.0-alpha1新設
罫線の色ユーティリティを追加して、罫線の色を変更できる。
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルの結合セル | テーブルのセル |
設定例
<table class="table table-bordered border-primary">
...
</table>
【設定】
table.table
に.table-bordered
を追加table.table.table-bordered
に.border-{themecolor}(-{subtle})
(罫線の色ユーティリティクラス)を追加すれば罫線の色が変更可能に
罫線のないテーブル(Tables without borders)
.table-borderless
を追加すると、罫線のないテーブルになる。
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルの結合セル | テーブルのセル |
Darkのテーブルで設定(.table.table-dark.table-borderless
)
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルの結合セル | テーブルのセル |
設定例
<table class="table table-borderless">
...
</table>
【設定】
table.table
に.table-borderless
を追加
セル間が狭いテーブル(Small table)
.table-sm
を追加して、すべてのセルの padding
を半分にすることで .table
をよりコンパクトにする。
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
Darkのテーブルで設定(.table.table-dark.table-sm
)
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-sm">
...
</table>
【設定】
table.table
に.table-sm
を追加(セルのpadding
が0.5remから0.25remに)
テーブルグループの仕切り線(Table group dividers)v5.2.0新設
.table-group-divider
を使用して、テーブルグループ(<thead>
, <tbody>
, <tfoot>
)の間に太い罫線を追加。border-top-color
を変更すればカラーをカスタマイズできる(現時点ではユーティリティクラスは提供していない)。
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
# | 見出し | 見出し | 見出し |
設定例
<table class="table">
<thead>
...
</thead>
<tbody class="table-group-divider">
...
</tbody>
<tfoot class="table-group-divider">
...
</tfoot>
</table>
【設定】
- theadとtbodyとの仕切り線:
<tbody>
に.table-group-divider
を入れる - tbodyとtfootとの仕切り線:
<tfoot>
に.table-group-divider
を入れる
垂直方向の配置(Vertical alignment)v5.0.0-alpha1新設
<thead>
のテーブルセルは常に垂直で下揃えに配置。<tbody>
内のテーブルセルは <table>
からそれらの配置を継承し、デフォルトで上揃えに配置。
見本
見出し 1 | 見出し 2 | 見出し 3 | 見出し 4 |
---|---|---|---|
このセルはテーブルから vertical-align: middle を継承 |
このセルはテーブルから vertical-align: middle を継承 |
このセルはテーブルから vertical-align: middle を継承 |
これは、前のセルで垂直方向の配置がどのように機能するかを示すために、かなりの垂直方向のスペースを占めることを目的としたプレースホルダテキスト。 |
このセルはテーブル行から vertical-align: bottom を継承 |
このセルはテーブル行から vertical-align: bottom を継承 |
このセルはテーブル行から vertical-align: bottom を継承 |
これは、前のセルで垂直方向の配置がどのように機能するかを示すために、かなりの垂直方向のスペースを占めることを目的としたプレースホルダテキスト。 |
このセルはテーブルから vertical-align: middle を継承 |
このセルはテーブルから vertical-align: middle を継承 |
このセルは上に揃えられる | これは、前のセルで垂直方向の配置がどのように機能するかを示すために、かなりの垂直方向のスペースを占めることを目的としたプレースホルダテキスト。 |
設定例
<div class="table-responsive">
<table class="table align-middle">
<thead>
<tr>
...
</tr>
</thead>
<tbody>
<tr>
...
</tr>
<tr class="align-bottom">
...
</tr>
<tr>
<td>...</td>
<td>...</td>
<td class="align-top">このセルは上に揃えられる</td>
<td>...</td>
</tr>
</tbody>
</table>
</div>
【設定】
<table>
,<tr>
,<th>
,<td>
にそれぞれ.align-**
(縦の配置ユーティリティクラス)を入れると垂直方向の配置設定が可能
入れ子(Nesting)v5.0.0-alpha1新設
罫線、強調表示、カラーバリエーションのスタイルは、入れ子になったテーブルには継承されない。
見本
# | 見出し | 見出し | 見出し | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル | ||||||||||||
|
|||||||||||||||
2 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table table-striped table-bordered">
<thead>
...
</thead>
<tbody>
...
<tr>
<td colspan="4">
<table class="table mb-0">
...
</table>
</td>
</tr>
...
</tbody>
</table>
【変更履歴】
- 【v5.0.0-alpha1】
- テーブルを入れ子にしても子テーブルは親テーブルのスタイルを継承しなくなった(子テーブルは独自のスタイル設定ができるようになった)
入れ子のしくみ(How nesting works)v5.0.0-alpha1新設
入れ子になったテーブルに任意のスタイルが漏れるのを防ぐために、CSSで子コンビネータ(>
)セレクタを使用。thead
, tbody
, tfoot
のすべての td
と th
をターゲットにする必要があるため、セレクタがないとかなり長く見えてしまう。そのため、奇妙に見えるが .table > :not(caption) > * > *
セレクタを使用して、.table
のすべての td
と th
をターゲットにするが、入れ子になった潜在的なテーブルはターゲットにしない。
<tr>
をテーブルの直接の子として追加すると、それらの <tr>
はデフォルトで <tbody>
で囲むことになるので、セレクタが意図したとおりに機能するので注意(子テーブルにも <thead>
, <tbody>
の設定をする)。
構造(Anatomy)
ヘッダの見出し(Table head)v5.0.0-alpha1設定変更
カラーバリエーション・テーブルと同様に、修飾子クラス .table-light
や .table-dark
を使って、<thead>
に色を付ける。
見本
暗めの見出し(thead.table-dark
)
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
明るめの見出し(thead.table-light
)
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
Bootstrap5.xの設定例 緑背景が変更箇所
暗めの見出し<table class="table">
<thead class="table-dark">
...
</table>
明るめの見出し<table class="table">
<thead class="table-light">
...
</table>
※Bootstrap4.xの設定例 赤背景が変更箇所
暗めの見出し<table class="table">
<thead class="thead-dark">
...
</table>
明るめの見出し<table class="table">
<thead class="thead-light">
...
</table>
【設定】
<thead>
タグに.table-{themecolor}
を入れる(dark
,light
以外も可)
【変更履歴】
- 【v5.0.0-alpha1】
thead.thead-{dark|light}
⇒thead.table-{themecolor}
(.thead-{dark|light}
は廃止)
フッタの見出し(Table foot)
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
フッタ | フッタ | フッタ | フッタ |
設定例
<table class="table">
<thead>
...
</thead>
<tbody>
...
</tbody>
<tfoot>
...
</tfoot>
</table>
【設定】
<tbody>
の後に<tfoot>
をつけることも可能(Bootstrap特有の設定はない)
キャプション(Captions)v5.0.0-alpha1クラス追加
<caption>
はテーブルの表題のように機能。スクリーンリーダーを持つユーザーがテーブルを見つけて、それが何であるかを理解し、それを読むかどうかを決定するのに役立つ。
1. デフォルトの設定(テーブルの下部にキャプションを配置)
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table">
<caption>テーブルのキャプション</caption>
...
</table>
2. テーブルの上部にキャプションを配置 v5.0.0-alpha1追加
.caption-top
を使用すれば、テーブルの上部に <caption>
を配置できる。
見本
# | 見出し | 見出し | 見出し |
---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<table class="table caption-top">
<caption>テーブルのキャプション</caption>
...
</table>
【設定】
table.table
><caption>
(デフォルトではキャプションはテーブルの下に表示される)- キャプションをテーブルの上部に配置するには
table.table
に.caption-top
を追加(<caption>
には追加しないこと)
レスポンシブテーブル(Responsive tables)
レスポンステーブルを使用すると、テーブルを簡単に水平方向にスクロールできる。.table
を .table-responsive
で囲むことによって、すべてのビューポートでレスポンシブ可能なテーブルを作成。または、最大幅のブレークポイントを持つレスポンシブテーブルを作成する場合は .table-responsive{-sm|-md|-lg|-xl|-xxl}
から選択。
垂直クリップ/切り捨て
レスポンシブテーブルは、overflow-y: hidden
を使用し、テーブルの下端や上端を超えるコンテンツをクリップする(切り取る)。これで特にドロップメニューや他のサードパーティ製のウィジェットを切り捨てられる。
常にレスポンシブ(Always responsive)
すべてのブレークポイントにわたって、テーブルを水平にスクロールするために .table-responsive
を使用。
見本
# | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し |
---|---|---|---|---|---|---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
セル内で文章を折り返さないようにする(裏技)
# | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し |
---|---|---|---|---|---|---|---|---|---|
1 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
2 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
3 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
設定例
<div class="table-responsive">
<table class="table">
...
</table>
</div>
セル内で文章を折り返さない<div class="table-responsive">
<table class="table text-nowrap">
...
</table>
</div>
【設定】
div.table-responsive
>table.table
- テーブルがコンテナよりも広いときは、必要に応じてセルを折り返すので、
table.table
に.text-nowrap
を追加すると、セルを折り返さずに表示される
特定のブレークポイント(Breakpoint specific)v5.0.0-alpha1クラス追加
必要に応じて .table-responsive{-sm|-md|-lg|-xl|-xxl}
を使用して、特定のブレークポイントまでのレスポンシブテーブルを作成。そのブレークポイント以降では、テーブルは正常に動作し、水平方向にスクロールしない。
これらのテーブルは、レスポンススタイルが特定のビューポートの幅に適用されるまで、破損しているように見える場合がある。
見本 ※画面からはみ出す部分は非表示に設定しています
ビューポートが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 | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル | テーブルのセル |
ビューポートが1399px以下で、テーブルの幅がコンテナよりも広いときは水平スクロールが表示 .table-responsive-xxl
v5.0.0-alpha1追加
# | 見出し | 見出し | 見出し | 見出し | 見出し | 見出し |
---|---|---|---|---|---|---|
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
(超特大)のいずれかを選択)は、グリッド・システムのビューポイントに準ずる
【注意】
- 指定したビューポート以上でテーブルの幅がコンテナよりも広いときは、はみ出して表示される
【変更履歴】
- 【v5.0.0-alpha1】
.table-responsive-xxl
が追加
CSS v5.0.0-alpha1追加、v5.0.0-beta3Sassでのカスタマイズ、v5.3.0Sassからそれぞれ名称変更
Sass変数(Sass variables)v5.3.0変数から名称変更
デフォルトの設定
scss/_variables.scss 内 table-variables の設定$table-cell-padding-y: .5rem;
$table-cell-padding-x: .5rem;
$table-cell-padding-y-sm: .25rem;
$table-cell-padding-x-sm: .25rem;
$table-cell-vertical-align: top;
$table-color: var(--#{$prefix}emphasis-color);
$table-bg: var(--#{$prefix}body-bg);
$table-accent-bg: transparent;
$table-th-font-weight: null;
$table-striped-color: $table-color;
$table-striped-bg-factor: .05;
$table-striped-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-striped-bg-factor);
$table-active-color: $table-color;
$table-active-bg-factor: .1;
$table-active-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-active-bg-factor);
$table-hover-color: $table-color;
$table-hover-bg-factor: .075;
$table-hover-bg: rgba(var(--#{$prefix}emphasis-color-rgb), $table-hover-bg-factor);
$table-border-factor: .2;
$table-border-width: var(--#{$prefix}border-width);
$table-border-color: var(--#{$prefix}border-color);
$table-striped-order: odd;
$table-striped-columns-order: even;
$table-group-separator-color: currentcolor;
$table-caption-color: var(--#{$prefix}secondary-color);
$table-bg-scale: -80%;
Sassループ(Sass loops) v5.3.0ループから名称変更
デフォルトの設定
scss/_variables.scss 内 table-loop の設定$table-variants: (
"primary": shift-color($primary, $table-bg-scale),
"secondary": shift-color($secondary, $table-bg-scale),
"success": shift-color($success, $table-bg-scale),
"info": shift-color($info, $table-bg-scale),
"warning": shift-color($warning, $table-bg-scale),
"danger": shift-color($danger, $table-bg-scale),
"light": $light,
"dark": $dark,
);
カスタマイズ(Customizing)
- 因子変数(
$table-striped-bg-factor
,$table-active-bg-factor
,$table-hover-bg-factor
)は、テーブルのカラーバリエーションのコントラストを決定するのに使用される。 - lightのテーブルとdarkのテーブルのカラーバリエーションは別として、テーマの色は
$table-bg-scale
変数によって明るくしている。