カテゴリ: CSS 更新日: 2025/11/29

CSSでstickyを使ってスクロールに合わせて固定するUIの作り方を初心者向け解説

stickyでスクロールに合わせて固定するUIの作り方
stickyでスクロールに合わせて固定するUIの作り方

先生と生徒の会話形式で理解しよう

生徒

「先生、スクロールするときに、あるヘッダーだけ画面の上にくっついて固定されるようにしたいです。どうすればいいですか?」

先生

「それならCSSのpositionプロパティでstickyを使うと便利です。stickyは、要素が通常は流れに沿って動きますが、指定した位置までスクロールすると固定される特徴があります。」

生徒

「fixedとabsoluteとどう違うんですか?」

先生

「absoluteは親要素を基準に位置を決め、fixedは画面を基準に位置を固定します。一方、stickyはスクロールに応じて動いたり止まったりするので、ナビゲーションバーや目次で使うとユーザーに優しいUIになります。」

1. stickyの基本的な使い方

1. stickyの基本的な使い方
1. stickyの基本的な使い方

CSSでposition: stickyを設定すると、要素は通常通りページの中で流れに沿って配置されますが、スクロールして指定したtopやleftの位置に達すると、その位置で固定されます。これにより、ユーザーがスクロールしても重要なナビゲーションや見出しを常に表示できます。

stickyを使うには、必ず親要素に高さが必要で、overflowがhiddenやautoになっていないことがポイントです。

2. sticky要素のHTMLとCSS例

2. sticky要素のHTMLとCSS例
2. sticky要素のHTMLとCSS例

以下の例では、目次のヘッダーをstickyでスクロールに合わせて固定しています。ユーザーがページをスクロールすると、ヘッダーは指定したtop位置で止まります。


<style>
    .sticky-header {
        position: sticky;
        top: 0;
        background-color: #ffc107;
        padding: 10px;
        font-weight: bold;
        border-bottom: 2px solid #333;
        z-index: 10;
    }
    .content {
        height: 1500px;
        background-color: #f8f9fa;
        padding: 20px;
    }
</style>

<div class="sticky-header">目次ヘッダー</div>
<div class="content">
    ここに長い記事の内容が入ります。スクロールしてみると、ヘッダーが画面上部で止まります。
</div>
ブラウザ表示

3. stickyを使うメリットと活用例

3. stickyを使うメリットと活用例
3. stickyを使うメリットと活用例

stickyを活用すると、ユーザーが長いページをスクロールしても重要な情報を見失いません。例えば、目次、サブナビゲーション、広告バナー、アクションボタンなどで使えます。メリットとしては、以下の点があります。

  • スクロールに応じて自然に固定されるのでUIが直感的
  • ヘッダーや目次を常に表示できる
  • ページ全体のレイアウトに影響を最小限にできる

4. stickyを使うときの注意点

4. stickyを使うときの注意点
4. stickyを使うときの注意点

stickyは親要素の範囲内でのみ固定されます。親要素の高さが足りないと、思った位置で固定されません。また、overflowがhiddenやautoの場合はstickyが効かないことがあります。これらの条件を満たすことが重要です。

また、z-indexを調整しないと他の要素に隠れてしまう場合があるので注意しましょう。

5. stickyとfixedの違い

5. stickyとfixedの違い
5. stickyとfixedの違い

fixedは常に画面を基準に固定されるのに対し、stickyはスクロールに応じて固定されます。stickyは自然なスクロールの流れを保ちながら、ユーザーが必要な情報を見失わないUIを作るのに向いています。

例えると、stickyは「スクロールすると止まる付箋」、fixedは「画面の窓に常に貼ってある付箋」というイメージです。

カテゴリの一覧へ
新着記事
New1
Bootstrap
Bootstrapのガターをマスター!g-0〜g-5とgx/gyの使い分けコツ
New2
CSS
CSSグリッド完全解説!auto-fitとauto-fillの違いとレスポンシブ設計での正しい使い分け
New3
Bootstrap
Bootstrapブレークポイントの設計図!sm/md/lg/xlの選び方と実務基準
New4
CSS
CSSグリッド入門!grid-areaで名前付き領域を使ったレイアウトの作り方をやさしく解説
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSグリッドレイアウト完全入門!display: grid の基本と使い方を初心者向けにやさしく解説
No.2
Java&Spring記事人気No2
CSS
CSSでテキストの折り返しを完全解説!初心者でもわかる基本と注意点
No.3
Java&Spring記事人気No3
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.4
Java&Spring記事人気No4
CSS
CSSの複数セレクタ指定を完全解説!初心者でもわかるカンマ区切りの使い方
No.5
Java&Spring記事人気No5
CSS
CSSのフレックスボックスで要素を左右に寄せる方法を完全ガイド!初心者でもわかるjustify-content: space-between
No.6
Java&Spring記事人気No6
CSS
CSSフレックスボックス完全解説|Gridとの違いとFlexboxが得意なレイアウトパターンを初心者向けに理解しよう
No.7
Java&Spring記事人気No7
CSS
CSS Flexbox入門!display: flexの基本と適用方法を初心者向けに解説
No.8
Java&Spring記事人気No8
CSS
CSSの斜体文字を完全解説!初心者でもわかるfont-style: italicの使い方