CSS PR

ヘッダーを固定させた時のページ内リンクを調整する方法

記事内に商品プロモーションを含む場合があります

ヘッダーを「fixed」で固定したとき、ページ内リンクの位置がずれてしまう問題を解決する方法を紹介します。

コンテンツ固定時のページ内リンク

ヘッダーを固定(position fixed)されているサイトでページ内リンクをさせると、コンテンツをヘッダーで隠れちゃう・・・ってことが起こります。
最近コーディングしているときにこの現象に出くわしたので、早速解決方法を書いておきます。
主な解決方法は2つCSSを使う方法とJSを使う方法です。

 

 

CSSを使って解決する

今回使うプロパティは「padding」と「margin」です。
かなりメジャーなので少しCSSをいじったことがあれば一瞬でできてしまいます。

 

コード

固定するもの(ヘッダー)が100pxの場合


<div class="header"></div>


<div class="content"></div>

.header{
  width: 100%;
  height: 100px;
  position: fixed;
  top: 0;
}

.content{
  margin-top: -100px;
  padding-top: 100px;
}

 

paddingで固定する箇所の高さ分広げてあげて、ネガティブmarginで広げた分を引いてあげるだけ!
なぜ-100pxするがと言うと隠れていないときでも上に100pxの隙間ができてしまうのでそのスキマを隠すために使用します。
CSSで修正する方法は、JSで共通で実装するよりも最低範囲で調整でき、手軽なので個人的にはこちらの方法をよく使用します。

 

 

 

JSでの解決方法は現在執筆中です。

ABOUT ME
シラツキ
Web制作会社で働くフロントエンドエンジニア(コーダー)。 ココナラでもお仕事募集しております。 HTML,CSS,JS,WordPress,EC-CUBE,Next.jsなど制作に役立つ情報を発信していきます。 webサイトの運営、修正、制作などお仕事も募集中! お気軽にご相談ください。