Bootstrapのテーブル固定ヘッダー完全ガイド!position: stickyとoverflowの実用レシピ
生徒
「Bootstrapで表を作ったんですが、行が多くてスクロールすると見出しが消えてしまいます…」
先生
「それなら、テーブルのヘッダーを固定すると見やすくなりますよ。」
生徒
「固定って、ずっと上にくっついたままにできるんですか?」
先生
「はい。BootstrapとCSSのposition: stickyを使えば、初心者でも簡単に実現できます。」
1. Bootstrapのテーブルとは何か
Bootstrapのテーブルは、表をきれいに整えて表示するための仕組みです。パソコンで言うと、ノートに定規を使って線を引いたような状態を、自動で作ってくれます。tableタグにBootstrapのクラスを付けるだけで、文字の間隔や線の太さが整い、初心者でも読みやすい表を作れます。
特にデータ一覧や名簿、商品リストなど、縦に長くなる情報を表示するときに使われます。そのため、スクロールしたときに見出しが消えない工夫が重要になります。
2. 固定ヘッダーが必要になる理由
行が多いテーブルを下までスクロールすると、どの列が何の情報かわからなくなることがあります。これは、黒板の上に書いた見出しを消してしまい、下の内容だけを見ているような状態です。
固定ヘッダーは、この問題を解決します。見出し行を画面の上に貼り付けておくことで、今見ている情報が何なのか、いつでも確認できるようになります。
3. position: stickyの基本的な考え方
position: stickyは、スクロールに合わせて要素をくっつけるためのCSSの仕組みです。普段は普通に配置され、ある位置までスクロールすると、そこに固定されます。
イメージとしては、ノートに付けた付箋です。ページをめくっても、付箋は同じ位置に残ります。テーブルの見出し行にこの設定を使うことで、ヘッダーが固定されます。
<table class="table">
<thead>
<tr>
<th>名前</th>
<th>年齢</th>
</tr>
</thead>
<tbody>
<tr><td>田中</td><td>20</td></tr>
<tr><td>佐藤</td><td>22</td></tr>
</tbody>
</table>
ブラウザ表示
4. overflowとスクロール領域の関係
固定ヘッダーを使うときに重要なのがoverflowです。overflowは、箱からはみ出した中身をどう表示するか決める設定です。
テーブル全体を箱に入れ、その箱だけをスクロールさせることで、ヘッダーだけを固定できます。これは、書類をファイルケースに入れて、中だけを動かすようなイメージです。
<style>
.table-wrap {
max-height: 200px;
overflow-y: auto;
}
</style>
<div class="table-wrap">
<table class="table">
<thead>
<tr>
<th>商品</th>
<th>価格</th>
</tr>
</thead>
<tbody>
<tr><td>りんご</td><td>100</td></tr>
<tr><td>みかん</td><td>120</td></tr>
</tbody>
</table>
</div>
ブラウザ表示
5. Bootstrapで固定ヘッダーを作る実用例
Bootstrapでは、tableクラスと組み合わせることで、見た目を崩さず固定ヘッダーを作れます。theadの中のthにstickyを設定するのが基本です。
この方法は特別なJavaScriptを使わないため、仕組みがシンプルで初心者にも安心です。
<style>
.table thead th {
position: sticky;
top: 0;
background: #f8f9fa;
}
</style>
<table class="table table-bordered">
<thead>
<tr>
<th>ID</th>
<th>名前</th>
</tr>
</thead>
<tbody>
<tr><td>1</td><td>山田</td></tr>
<tr><td>2</td><td>鈴木</td></tr>
</tbody>
</table>
ブラウザ表示
6. 背景色を指定する重要性
固定ヘッダーには必ず背景色を指定します。指定しないと、下の行が透けて見えて文字が読みにくくなります。
これは、透明な下敷きの上に文字を書いたような状態です。背景色を付けることで、見出しがはっきりと区別できるようになります。
7. よくある失敗と注意点
固定ヘッダーが動かない場合、多くはoverflowの設定場所が間違っています。テーブル自体ではなく、外側の箱にスクロールを設定するのがポイントです。
また、topの値を指定しないとstickyは正しく動きません。基本はtop: 0を覚えておくと安心です。
<style>
.table thead th {
position: sticky;
top: 0;
}
</style>
【60分集中】CSSを1行も書かない!?Bootstrap 5ユーティリティクラス活用で開発工数を50%削減
「スピード」が武器になる。Bootstrap 5で商用クオリティのWebサイトを高速構築。
本講座では、世界シェアNo.1のフレームワークBootstrap 5を使いこなし、ゼロからレスポンシブサイトを組み上げる「現場最速のワークフロー」を学びます。単なる導入に留まらず、ユーティリティクラスを活用した効率化と、実務で必須となるカスタマイズ技法を60分で完全習得します。
具体的なワークショップ内容と環境
【つくるもの】
モダンなランディングページ(LP)やダッシュボードのプロトタイプを作成します。ナビゲーション、ヒーローセクション、カードレイアウト、フッターなど、Bootstrapのコンポーネントを組み合わせて「一瞬で形にする」感動を体験してください。
【開発環境】
VS CodeにBootstrap 5専用のSnippet(補完機能)を導入し、手入力を最小限にする環境を構築。最新のCDN利用法や、表示速度(Core Web Vitals)を意識した最適な読み込み設定など、プロの初期設定を伝授します。
この60分で得られる3つの革新スキル
スマホ・タブレット・PCでレイアウトを自由自在に切り替える「ブレイクポイント」の極意を学びます。
CSSを1行も書かずに、マージン・パディング・カラーを制御。開発工数を半分以下にする実戦術を習得します。
「Bootstrap感」を消し、独自のブランドイメージに合わせるための、上書きの作法とデザインの整え方を伝授します。
※本講座は、HTML/CSSの基本を理解した方向けの「実践加速講座」です。制作会社のコーダーや副業フリーランスとして「案件の回転率」を上げ、市場価値を最大化させたい方をモクモクがバックアップします。
Bootstrap 5を楽しみながら、一緒に学びましょう!
各回少人数・マンツーマン形式で徹底サポート
このセミナーの詳細・お申し込みはこちら