HTML ページに、定義済みの高さを持ち、上部に固定されたスクロールしないヘッダーがある場合:
URL アンカー (部分) を使用して、 JavaScript を使用せずに#fragment
固定要素の高さを維持しながら、ブラウザーをページ内の特定のポイントまでスクロールさせる方法はありますか?
http://example.com/#bar
間違い(ただし一般的な動作です): 正解: +---------------------------------+ +---------------------------------+ | BAR////////////////////// ヘッダー | | ////////////////////////// ヘッダー | +---------------------------------+ +---------------------------------+ | 残りのテキストはこちらです | | BAR | | ... | | | | ... | | 残りのテキストは次のとおりです | | ... | ... | +---------------------------------+ +---------------------------------+
ベストアンサー1
新しいクラスを設定できない場合、または設定したくない場合は、固定高さのクラスを追加します。::before
疑似要素を:target
CSS の疑似クラス:
:target::before {
content: "";
display: block;
height: 60px; /* fixed header height*/
margin: -60px 0 0; /* negative fixed header height */
}
:target
または、 jQuery を使用してページを相対的にスクロールします。
var offset = $(':target').offset();
var scrollto = offset.top - 60; // minus fixed header height
$('html, body').animate({scrollTop:scrollto}, 0);