250 文字
1 分
Q. position: stickyが効かない
position: sticky
が効かないという質問を受けることが年に数回はある。
以前は thead などの要素に対してposition: sticky
が効かないという問題があったが、現在はほとんどのブラウザで対応されている。
https://issues.chromium.org/issues/40511425
この質問が発生する場合、position: sticky
が粘着できる対象が分かっていないことが多い。
position: sticky
が粘着する要素
overflow
がvisible
以外の直近の祖先要素に対してposition: sticky
が指定されている要素は粘着する。
<div style="overflow: auto;"> <div style="position: sticky; top: 0;"> <!-- 粘着する --> </div></div>
該当する要素が存在しない場合、position: sticky
は viewport に対して粘着する。
また、position: sticky
の要素はスクロールが発生する軸方向に対応したtop
やright
などの指定も必要である。
これらの指定がない場合、position: relative
と同様の挙動をする。
Q. position: stickyが効かない
https://blog.ohirunewani.com/posts/position-sticky-does-not-work/