【CSS】position: sticky; 応用編。 tableのセルに使用すると、セルを固定表示できる!
今回は前回の予告通り、「position: sticky;」を<table>に適用させてみたいと思います。
.table-sticky table tr:first-child th {
position: sticky;
top: 0;
z-index: 2;
}
.table-sticky table tr th:first-child {
position: sticky;
left: 0;
z-index: 2;
}
.table-sticky table tr:first-child th:first-child {
z-index: 3;
}
こんな感じです。
1つ目のCSSは、
「最初の行の<th>のみに、position: sticky; top:0; を適用」
(上に固定)
2つ目のCSSは、
「左の1列目の<th>のみに、position: sticky; left:0; を適用」
(左端で固定)
3つ目のCSSは、
「左上の<th>のみに、z-index:3; を適用」
(表示のプライオリティーを一番上に持ってきたいので)
こんな感じです。
↓↓↓↓↓ それでは、サンプルをご覧ください。
https://revenue-test.biz/test_html/position-sticky-table.html
すごいですよね!
個人的には、これが理想のtableだと思います。
HTMLでは、position:sticky; が現れるまで、見出しセルの固定はできませんでした。
ですが、これが使用できるようになって、とても見やすいtableになったと思います。・・・小さいtableなら必要はないんですが、大きいものになると、こんな風にセルを固定できるのが本当にありがたいですよね。
position:sticky; が現れるまでは、
「HTMLの<table>ってこんなものだからしょうがない」
とあきらめるか、
<table>外に別のオブジェクトを組んで、セルの幅に強引に合わせて固定しているように見せかける、などの手法がとられていました。
が、今では…このCSSの登場により、セルの幅を気にすることなく、見出しセルの固定が可能になったわけです。
position:sticky; 、まだまだ可能性がありそうですね。
便利な使い方を発見しましたら、またご報告させていただきたいと思います。
この記事が気に入ったらサポートをしてみませんか?