当記事のh2
タグにも適用しています!!😀
position:stickyとは?
「スクロールした際に、親要素のボックス内の指定した位置に固定させることができるpositionプロパティ」です。
例えば以下のように書くと、
//HTML <section> <h2>ここにposition: stickyを適用</h2> </section> //CSS h2 { position: sticky; top: 0px; } section { height: 1500px; }
section
のボックス内で、h2タグが常にtop:0px
の位置に来るようになります。
要するに、コンテナとなる要素を作って、その中に固定したいメニューを作って、そのメニューに対して
position: sticky;
top: 0px;
この2つを指定するだけです!そして超かんたん!
詳しく
用語としては以下のとおりです。
- スティッキーアイテム:
→position: sticky;
を設定した要素のこと。
- スティッキーコンテナ:
→position: sticky;
を設定した要素の親要素こと。
ポイントとしては
・position: sticky;
を設定した要素の親要素は、自動的にスティッキーコンテナになる
・スティッキーアイテムは、スティッキーコンテナから出ることができない
という2点。
その他補足です。
section
タグのheight:1500px
;は、子要素の高さ以上あれば、わざわざ指定する必要はない。section
タグの部分は、div
タグなどでもOK
表のヘッダーを固定
これは結構使えそうな気がするのですが
以下のように列・行のヘッダーをそれぞれ固定することもできます。
これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | |
---|---|---|---|---|---|---|---|---|
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
サンプルテキスト | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 | これはサンプルテキストです。 |
以下、使用する上のポイントです。
・table
を囲う親要素を作り、その親要素にoverflow: scroll
と高さ指定(この例で言うと height: 400px
)をする
・table
自体には、以下のようなCSSを適用する。
/* 上固定 */ tr:nth-of-type(1) > th:not(th:nth-of-type(1)) { position: sticky; top: 0px; background-color: purple; color: white; z-index: 1; } /* 左固定 */ tr:not(tr:nth-of-type(1)) > th, tr:nth-of-type(1) > th:nth-of-type(1) { position: sticky; left: 0px; background-color:darkblue; color: white; z-index: 2; /*左固定が上になるようにする */ } /* 折返ししないようにする */ table { white-space: nowrap; }
※thead
タグを書けばもっと楽に書けますが、書いた後に「あ、thead使えばよかったじゃん・・・」と気づきました😭
WordPressだとhタグにつけるだけ
WordPressだとh
タグに
position: sticky; top: 0px;
top: 0px;
を付けるだけでOKです!かんたん!
当記事でもh2タグに
h2 { position: sticky; top: 0px; }
を設定してるだけです!😀
おわり
コメント