カテゴリ: 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
CSS
CSS Gridテンプレート集!よく使うWebレイアウトの作り方
New2
HTML
HTML head要素とは?meta・titleの役割と基本を解説
New3
Bootstrap
Bootstrap固定比率カラム完全ガイド!.col-6・.col-md-4の使い方とベストプラクティスを初心者向けに解説
New4
CSS
CSS Gridとメディアクエリで作る!レスポンシブデザイン完全入門
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSの入れ子構造セレクタ完全ガイド!初心者でもわかる書き方と使い方
No.2
Java&Spring記事人気No2
HTML
HTMLでできること・できないこと|初心者が迷う点を整理
No.3
Java&Spring記事人気No3
CSS
CSS Gridの配置を視覚的にデザイン!grid-template-areasの設計方法
No.4
Java&Spring記事人気No4
CSS
CSSの文字色と背景色の組み合わせで読みやすさアップ!初心者でもわかる可読性の改善方法
No.5
Java&Spring記事人気No5
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.6
Java&Spring記事人気No6
Bootstrap
Bootstrap5グリッドとは?12分割の基本とrow・col・gutterを初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
HTML
HTML html/head/bodyタグの役割|文書構造の基本を整理
No.8
Java&Spring記事人気No8
HTML
HTML文書構造とは?ページ構造とアウトライン設計の基本を解説