:target:before {
content: "";
display: block;
height: var(--header-height); /* スティッキーヘッダーの高さに合わせて調整 */
margin-top: -var(--header-height); /* スティッキーヘッダーの高さに合わせて調整 */
}
このCSSコードでは、:target:before
セレクタを使用して、アンカーリンクのターゲット要素の前に疑似要素を作成します。content
属性に空の値を指定して要素を表示し、display: block
を設定して要素をブロックレベルにします。さらに、height
プロパティと margin-top
プロパティを使用して、スティッキーヘッダーの高さに合わせて要素のサイズと位置を調整します。
この方法を使用することで、アンカーリンクをクリックしたときにスティッキーヘッダーの背後にスクロールされ、リンク先のセクションが適切に表示されます。
上記のコード例は一般的なケースに対応していますが、実際のウェブページに適用する際には、var(--header-height)
の値を実際のスティッキーヘッダーの高さに合わせて変更する必要があります。
以上が、スティッキーヘッダーの背後でアンカーリンクのスクロールを防止するためのシンプルで簡単な方法です。この方法を使用すると、ユーザーがアンカーリンクをクリックしたときにスティッキーヘッダーによって隠されることなく、正確な位置にスクロールされるようになります。