概要

scroll-padding-blockは、CSSでスクロール位置の内側余白(パディング)を設定するためのプロパティです。ブロック方向(上下)に余白を追加することで、スクロールした際の要素の位置を調整できます。特にscroll-snapと組み合わせて使用すると、要素がスクロールされたときに理想的な位置に配置されるため、ユーザーエクスペリエンスの向上に役立ちます。

scroll-padding-blockの基本構文

scroll-padding-block: <length>;

または、上下のパディングを個別に指定できます。

scroll-padding-block: <top-padding> <bottom-padding>;
  • length
    上下のパディングを指定する値です。px、em、rem、%などの単位で設定できます。

値の説明

  • px(ピクセル)
    絶対的な長さを指定する一般的な単位です。例えば、scroll-padding-block: 20px;と設定すると、上下に20pxのパディングが追加されます。

  • em、rem
    フォントサイズに基づく相対単位で、レスポンシブデザインに適しています。

  • %(パーセント)
    コンテナの高さに対する相対的なパディングを指定できます。

使用例

基本的な使用例 - スクロール位置の内側余白を設定

以下のコードでは、スクロールされた要素が画面の上端に近づきすぎないように内側余白を設定しています。

.container {
    scroll-padding-block: 20px; /* 上下に20pxのパディング */
}

この設定により、.container内の要素がスクロールされると、上下に20pxの余白を持ってスクロールされます。

個別に上下のパディングを指定する

上部に30px、下部に10pxの内側余白を個別に設定する例です。

.container {
    scroll-padding-block: 30px 10px;
}

この設定により、上方向に30px、下方向に10pxのパディングがそれぞれ追加され、スクロール時の見やすさが向上します。

スクロールスナップと組み合わせる例

scroll-padding-blockは、scroll-snap-typeと一緒に使うことで、スクロール位置の調整にさらに役立ちます。

.scroll-area {
    scroll-snap-type: y mandatory;
    scroll-padding-block: 50px; /* スクロールスナップ時に50pxのパディング */
}

この設定により、スクロールスナップを使用する際に要素が上下50pxの余白を持ってスクロールされ、より快適にスナップされるようになります。

固定ヘッダーと重ならないようにスクロール位置を調整する

固定ヘッダーと重ならないように要素を表示したい場合、scroll-padding-blockを使うことで適切に調整できます。

.section {
    scroll-padding-block: 70px; /* 固定ヘッダーを避けるために70pxのパディング */
}

このコードでは、スクロールされた要素が70pxの余白を持って表示されるため、固定ヘッダーに重なることなく見やすくなります。

注意点

  • scroll-padding-blockは、実際のレイアウトには影響を与えず、あくまでスクロール位置の調整を目的としています。パディングを設定することで、スクロール時の位置に余裕を持たせることができます。
  • scroll-snap機能と組み合わせることで、スクロール操作の際に要素の見やすさを大幅に向上させることができます。
  • 特定のスクロールイベントやフォーカス移動時の表示位置を調整するために有効です。

まとめ

scroll-padding-blockは、CSSでスクロール位置の内側余白を設定するためのプロパティで、スクロールされた要素の見やすさや配置を調整する際に便利です。特に固定ヘッダーがある場合や、scroll-snapと組み合わせて要素の位置を調整したいときに大きな効果を発揮します。スクロール位置のカスタマイズが必要な際に、ぜひこのプロパティを活用してデザインの品質を向上させてください。