今回は、CSSのposition: stickyを覚えればさまざまな場面で使えそうなので紹介します。
stickyとは「粘着性がある」という意味があり、指定した要素を(ヘッダやナビゲーション、サイドバーなど)スクロール時に、指定した位置にピタリと張り付けることができます!
sticky使用する場合は親要素を必ず使う。
その子要素にposition: stickyを指定。
position: sticky を適用した要素:スティッキーアイテムといいます。
position: stickyが適用された要素の「親要素」:スティッキーコンテナといいます。
まずは、position: stickyを指定するとどんな動きになるかをご覧ください。
上記のように、子要素にposition: stickyを指定すると、その親要素がスクロールし終わるまで、指定した位置にピタッとくっついています。
特にヘッダーやフッターの固定などはposition: fixedもありますが、高さがなくなるため、marginやpaddingなどで調整が必要でした。しかし、stickyは高さが残るので簡単に実装が可能です。
指定は簡単です。親要素で囲った子要素にposition: stickyと、スクロールした際に固定したい位置を指定します。
position: stickyは主要ブラウザでサポートされていますが、Safariではベンダープレフィックスを加える必要があります。
以下、書き方です。
.セレクタ{
position: sticky;
position: -webkit-sticky; /* Safari */
top: 0;
}
親要素にoverflow:visible以外(overlow: hidden ;やoverflow: scroll ;)が指定されている。
Safariで効かなくなります。
stickyは親要素の中で動くので、親要素の高さがない、または高さを指定しないと効きません。
position: stickyは、貼り付ける位置(top, left, right, bottom)を指定しないとうまく動きません。top, left, right, bottomを指定しない場合でも、top:0は一緒に指定してください。
次回は、position: stickyを使用して以下の方法を紹介します。
株式会社オートプロジェクトでは、バックエンド全般を安心してお任せいただけます。
サーバー設定やDB管理、セキュリティ対策など幅広いニーズに対応いたします。お気軽にご相談ください。