いくつかのブログアイテムを含むページがあります。アイテムの前にはアンカーが付いており、。を使用してアイテムに直接リンクすることもあります#my-item
。
問題は、上部に固定メニューがあり、アンカーリンクがブラウザの上部を抱き締めているため、そのメニューがタイトルをカバーするようになったことです。
これを押し下げることは可能ですか(たとえば100px)?私はjQueryの方法を考えることができますが、click()
私が言ったように、時々私は別のページから来ます。
いくつかのブログアイテムを含むページがあります。アイテムの前にはアンカーが付いており、。を使用してアイテムに直接リンクすることもあります#my-item
。
問題は、上部に固定メニューがあり、アンカーリンクがブラウザの上部を抱き締めているため、そのメニューがタイトルをカバーするようになったことです。
これを押し下げることは可能ですか(たとえば100px)?私はjQueryの方法を考えることができますが、click()
私が言ったように、時々私は別のページから来ます。
ターゲットに負のトップマージンを追加し、同じ量のトップパディングで補正することで、アンカージャンプの動作を変更できます。ブラウザはクリックすると負のマージンの位置にジャンプしますが、ターゲットの間隔は正しいままです。
これがjsfiddleの例です
CSS
article {
display: block;
margin-top: -50px;
padding-top: 50px;
}
これは古いスレッドですが、まだ検索結果に表示されているため、現在のCSSは、scroll-margin-top
2021年の時点で広くサポートされているその目的のためのプロパティを提供していることに注意してください。
#my-item { scroll-margin-top: 100px; }
余白やパディングをいじらずにアイテムを押し下げます。
要素にパディングを追加してみませんか?
<h3 style="padding-top: 100px;">The subheading</h3>
ビューポートが要素の上端に一致し、要素のコンテンツと境界線の間に100ピクセルのスペースができるまで、ブラウザは下にスクロールします。
最も簡単な方法は、コンテンツの上部にマージンまたはパディングを追加することです。このHTMLを検討してください。
<a name="post1234"></a>
<article>
Lorem ipsum...
</article>
#post1234
ハッシュがリンクを指すと、画面の上部に配置されます。したがって、記事の上部にパディング/マージンを追加するだけです。
article { padding-top: 100px; }
解決:
あなたにパディングを追加しますa
a.anchor{
position: relative;
padding-top: 100px;
width:1px;
display: block;
}
どうも
ページ上のすべてのアンカーのジャンプターゲットをどのようにプッシュダウンするかを知りたい場合は、次のようにします。
/* all anchors and all elements with the anchor class */
a, .anchor { margin-top: -2em; padding-top: 2em; }
/* all anchors with an href attribute */
a[href] { margin-top:0; padding-top: 0; }
margin-top:unset;
代わりに使用することもできますmargin-top:0;
あなたが本当に危険を感じているなら、あなたはおそらく*[id]
これを使って、IDを持つすべてのものに適用することができます。しかし、私はおそらくそれをしません。知らない。試してみます。ワイルドサイドを歩け。
ここでの他の回答には表示設定が含まれているようですが、それがどのように必要または役立つかわかりません。