CSSだけでスムーススクロールを実装し、ヘッダーの高さ分だけ余白を確保する
投稿日:
更新日:
実装方法
ページ全体のスクロールを滑らかにするscroll-behavior: smooth;
を追加。
アンカーリンクをクリックした際にhref
属性に対応するIDを持つ要素が:target
によって選択されるため、その要素にヘッダーの高さを指定するカスタムプロパティ--headerHeight
を呼び出して余白を確保する。(カスタムプロパティを使用せず固定値でも良く、カスタムプロパティは任意の名前でも良い)
CSS
html {
scroll-behavior: smooth;
}
:target {
scroll-margin-top: var(--headerHeight, 0px); /* ヘッダーの高さ分の余白を確保 */
}
ヘッダーの高さを常に更新する方法は以下の記事で解説しています。