VIDEO LESSON
CSSのscroll-padding-topの使い方:指定値・実例・効かない原因とブラウザー互換性の解説動画
再生時間 6:55動画を別のタブで開く ↗
動画の字幕・文字起こしを読む
再生中の字幕を濃い黒で表示し、一番上に追従します。字幕の行を選ぶと、その位置から再生できます。
- 0:00こんにちは。
- 0:00シーエスエス、リファレンス解説です。
- 0:03今回のテーマは、スクロール・パディング・トップです。
- 0:07ページ内リンクをクリックして見出しへ移動したとき、見出しが画面の一番上にぴったりくっついて、
- 0:12固定ヘッダーの後ろに隠れてしまった、という経験はないでしょうか。
- 0:18このプロパティは、スクロールの止まる位置を少し下げることで、その隠れを防ぐためのものです。
- 0:24前回は移動の滑らかさを決めるスクロール・ビヘイビアを見ました。
- 0:28今回は、移動した先の余白を調整する指定を、基本の書き方から実例、効かないときの確認まで順番に見ていきましょう。
- 0:36書き方を確認します。
- 0:38スクロール・パディング・トップは、スクロールする領域そのもの、つまりスクロールコンテナーになる要素に指定します。
- 0:46クラス名デモの要素に対して、プロパティ名、コロン、値のスリー・レム、セミコロンと書くのが基本形です。
- 0:54ページ全体のスクロールに効かせたい場合は、ルート要素であるエイチティーエムエル要素に書きます。
- 1:02ここで一番大切なのは、指定する場所です。
- 1:05移動先の見出しではなく、スクロールする側に書く、という点を覚えてください。
- 1:11対象を取り違えると、まったく効かない指定になってしまいます。
- 1:15指定できる値は、オート、長さ、割合の三種類です。
- 1:19オートは初期値で、ブラウザーが自動で決める状態を表します。
- 1:24実務でよく使うのは、スリー・レムやエイティ・ピクセルのような長さの指定です。
- 1:30たとえばスリー・レムと書くと、アンカー移動で止まるとき、見出しの上にスリー・レム分の空きができるようにスクロール位置が調整されます。
- 1:41割合で書く場合は、スクロール領域の高さを基準にした比率になります。
- 1:47まずは長さの指定で、固定ヘッダーの高さに少し余裕を足した値を入れる、という使い方から始めるのがおすすめです。
- 1:56初期値と継承を確認します。
- 1:58初期値はオートです。
- 2:00そして、このプロパティは通常は継承しません。
- 2:03親の要素に指定しても、内側にある別のスクロール領域へ自動では伝わらないので、
- 2:08スクロールする領域ごとに指定する必要があります。
- 2:13汎用的な値として、親の計算値を使うインヘリット、仕様の初期値に戻すイニシャルも書けます。
- 2:20アンセットは、継承しないプロパティなのでイニシャルと同じ扱いです。
- 2:25ふだんはレムやピクセルの長さを直接書けば十分ですが、値を読み解く場面では、
- 2:30初期値がオートであることを知っていると混乱しません。
- 2:35実例を見ていきます。
- 2:37まずエイチティーエムエルの用意です。
- 2:39ステージの中に、スクローラーというクラスを持つ箱を用意し、その中にリンクと移動先の見出しを入れます。
- 2:46見出しには、リンクの飛び先になるアイディーを付けます。
- 2:50見出しの前後には高さのある余白を置いて、中身がスクロールできる状態にしておきます。
- 2:56構造のポイントは、リンクも移動先も、スクロールする箱の内側にあることです。
- 3:01この箱に対して次にシーエスエスを書くことで、箱の中での移動の止まり方を調整できるようになります。
- 3:08次に、スタイルズ・ドット・シーエスエスに書くシーエスエスです。
- 3:12まずスクローラーに高さと、オーバーフロー、オートを指定して、箱の中でスクロールが起きるようにします。
- 3:18スペーサーで見出しの前後に十分な余白を確保するのが土台です。
- 3:22その上で、今回の主役であるスクロール・パディング・トップ、スリー・レムを、
- 3:26デモのクラスに追加します。
- 3:29これで、リンクをクリックして見出しへ移動したとき、見出しが箱の上端に張り付かず、
- 3:33スリー・レム分下がった位置に止まるようになります。
- 3:37変更するのは最後の一行だけ、という構成が比較しやすいポイントです。
- 3:42値を変えて比べてみましょう。
- 3:44スリー・レムのときは、移動後に見出しの上へ空きができ、見出し全体が読みやすい位置に止まります。
- 3:52一方、値をゼロに置き換えると、空きがなくなり、見出しは箱の上端にぴったりくっついて止まります。
- 3:59固定ヘッダーがあるページでは、この上端に隠れて見出しの上の方が読めなくなるわけです。
- 4:06比較するときのコツは、変えるのはこのプロパティの値一つだけにすることです。
- 4:12ファイル保存後にブラウザーを再読み込みして、リンクを押したときの止まる位置の違いを言葉で説明できるようになるのが目標です。
- 4:21実務で一番多い使い方が、固定ヘッダー対策です。
- 4:25画面の上に固定されたヘッダーがあるサイトでページ内リンクを使うと、移動先の見出しがヘッダーの後ろに隠れがちです。
- 4:34そんなときは、エイチティーエムエル要素にスクロール・パディング・トップを指定します。
- 4:40値の目安は、ヘッダーの高さに少し余裕を足した長さです。
- 4:45ヘッダーがおよそフォー・レムなら、ファイブ・レムを指定する、といった具合です。
- 4:51目次リンクや、よくある質問へのアンカーが多いページほど効果が分かりやすく、
- 4:55サイト全体の使い勝手を底上げしてくれます。
- 5:00似た名前の、スクロール・マージン・トップとの違いを整理します。
- 5:05スクロール・パディング・トップは、スクロールする側に一度書けば、その中のすべての移動先に効く一括の指定です。
- 5:13対してスクロール・マージン・トップは、移動先の要素ごとに書く個別の指定で、
- 5:18見出しごとに違う余白を持たせたいときに使います。
- 5:23注意したいのは、両方を同時に使う場合です。
- 5:26余白が合わさって効くため、思ったより間が空き過ぎることがあります。
- 5:31基本はどちらか一方にそろえ、ページ全体はパディング、例外の要素だけマージン、
- 5:36という使い分けが分かりやすいでしょう。
- 5:40効かないときの確認手順です。
- 5:42このプロパティで一番多い間違いは、書く場所の取り違えです。
- 5:46移動先の見出しに書いていないか、スクロールする側に書けているかを、最初に確認してください。
- 5:53次に開発者ツールを開き、ネットワークでスタイルズ・ドット・シーエスエスが正常に取得されているか、
- 5:59エレメンツで対象のクラスとセレクターが一致しているかを見ます。
- 6:05スタイルズで宣言が打ち消し線になっていれば、別の宣言に上書きされています。
- 6:10最後にコンピューテッドで最終的な値を確認しましょう。
- 6:14小さい画面幅やキーボード操作でも確認できると、より確実です。
- 6:18最後に互換性とまとめです。
- 6:20ブラウザーの対応は、クロームがシックスティナイン以降、ファイアフォックスがシックスティエイト以降、
- 6:26サファリがフォーティーン・ポイント・ワン以降などで、現在の主要ブラウザーでは広く使えます。
- 6:33練習としては、まずスリー・レムとゼロの違いを自分の言葉で説明し、次に文章量や親の幅だけを変えて結果を比べてみてください。
- 6:41まとめます。
- 6:42スクロール・パディング・トップは、アンカー移動の止まる位置を下げる指定で、
- 6:45書く場所はスクロールする側です。
- 6:49固定ヘッダーのあるページで困ったら、この一行を思い出してください。
- 6:53お疲れさまでした。
この動画で学べること
scroll-padding-topの役割と主な指定値を解説。スクロール領域内のリンク先の上側の空きを比較します。初期値・継承・ブラウザー互換性、効かないときの確認方法も整理します。
解説記事・サンプルコードを読む:CSSのscroll-padding-topの使い方:指定値・実例・効かない原因とブラウザー互換性 →