概要
本文が長いページで、本文をスクロールしていってもサイドバーの内容だけは画面の中に留まってついてくる
レイアウトです。目次や広告枠、関連リンクなど、常に見えていてほしい情報をサイドバーに置くときに
使われます。CSS の position: sticky を使うと、JavaScript なしで実現できます。
別名
表記ゆれ:追従サイドバー、スティッキーサイドバー、固定サイドバー、sticky sidebar
「固定サイドバー」は常に画面に貼り付いたまま動かない実装(position: fixed)を指すこともあるため、
本文と一緒にある程度スクロールしたうえで追従させたい場合は「追従サイドバー」「スティッキーサイドバー」
と呼ぶ方が意図が伝わりやすくなります。
AI への伝え方
「サイドバーを追従させて」で通じます。position: sticky は、サイドバーを含む親要素の高さより
サイドバー自体の方が低いときにしか効果が見えない点に注意してください。ヘッダーが固定表示されている
場合は、サイドバーがヘッダーの下に隠れないよう「ヘッダーの高さぶん top を空けて」と伝えると
仕上がりがずれません。効かないときの典型的な原因は、親要素の高さが本文より低いこと(flex の親に
align-items: flex-start が付いていると、サイドバー側の親要素が中身と同じ高さに縮んでしまい追従の
余白がなくなります)と、祖先要素のどこかに overflow: hidden(または auto・scroll)が指定されていて
包含ブロックが切れてしまうことの 2 つです。
似たパーツとの違い
「サイドバー」はページの脇に置く領域そのものを指す言葉で、追従サイドバーはその表示のしかた(スクロール
に対する挙動)の一種です。「固定ヘッダー」も同じ position: sticky(または fixed)の仕組みを
上部で使ったもので、追従サイドバーとは追従する向きと対象が異なるだけで考え方は共通しています。