GHWEB06.GRASSHOPPER

固定ナビゲーション使用時のアンカーリンク

  • Category:Web関連
  • Web関連の備忘録

anker画面上部で固定ナビゲーション使用時、アンカーリンクで飛ばしたリンク先がナビゲーションの下に隠れて表示されるので、その対応方法を考えてみました。

サンプル

文章だけだとイメージし辛いと思いますので
サンプルページでどのようになるか試して見て下さい。

対応方法について

jQueryで対応すると別ページへのアンカーリンクの対応が面倒なのでHTMLとCSSで対応します。

HTMLの修正

コンテンツ枠を記述している下記の内側に<span>を追加します。
( id=”box6″のDIV要素まで同様に追加します )

【変更前】

<div id="box1">コンテンツ1
<a href="#top">ページのトップへ</a>
</div>

【変更後】

<div id="box1">
<span>
コンテンツ1<a href="#top">ページのトップへ</a>
</span>
</div>

CSSの修正

【変更前】

#content div {
	 clear:both;
	 display:block;
	 font-size:1.3em;
	 height:230px;
	 margin:0 auto 400px;
	 padding:170px 0 0 0;
	 text-align:center;
	 width:650px;
}
#content div a{
	 display:block;
	 padding:0;
}
#box1,
#box3,
#box5 {
	 background-color: #B9AA7D;
}
#box2,
#box4 {
	 background-color:#E2E3CE;
}

【変更後】

#content div{
	 padding:170px 0 0 0;
	 margin:-170px 0 0 0;
}
#content div span {
	 clear:both;
	 display:block;
	 font-size:1.3em;
	 height:230px;
	 padding:170px 0 0 0;
	 margin:0 auto 400px;
	 width:650px;
	 text-align:center;
}
#content div span a{
	 display:block;
	 padding:0;
}
#box1 span,
#box3 span,
#box5 span {
	 background-color: #B9AA7D;
}
#box2 span,
#box4 span {
	 background-color:#E2E3CE;
}

#content div のpadding指定で任意の高さ分ずらします。
只、paddingの指定だけだとレイアウトがくずれるためmarginにpaddingでずらした分だけマイナスの値を入れます。次に、div の内側に指定したspan にwidthや色指定を移行します。

サンプル修正版

以上

これで、思った動きになりました。
固定メニュー使用時にアンカーリンクを使う場合のご参考になればと思います。
RELATED ARTICLE
  • 掲載: