CSSでナビゲーションバーをページ上部に固定表示する方法
Webページをスクロールしてもナビゲーションバー(メニュー)が常に画面上部に表示されるようにするには、CSSの position: fixed プロパティと top プロパティを組み合わせて使用します。
基本的な仕組み
position: fixed を指定すると、要素はビューポート(ブラウザの表示領域)を基準に配置され、ページをスクロールしても位置が変わりません。さらに top: 0; を指定することで、要素が画面の最上部に固定されます。
主なプロパティの役割
- position: fixed; — 要素をビューポート基準の固定位置に配置します。
- top: 0; — 要素を画面上端に寄せます。
- width: 100%; — ナビゲーションバーを画面幅いっぱいに広げます。
- z-index; — 他のコンテンツより手前に表示させるために、大きな値を設定しておくと安全です。
実装例
以下のコードは、スクロールしても上部に留まり続けるナビゲーションメニューを実装したサンプルです。実際にブラウザで実行して動作を確認してみてください。
<!DOCTYPE html>
<html>
<head>
<style>
ul {
list-style-type: none;
position: fixed;
top: 0;
width: 100%;
margin: 0;
padding: 0;
background-color: orange;
z-index: 100;
}
li {
float: left;
border-right: 1px solid white;
}
li a {
display: block;
padding: 8px;
color: white;
text-decoration: none;
}
li:last-child {
border-right: none;
}
div {
padding: 30px;
margin-top: 40px;
background-color: white;
}
</style>
</head>
<body>
<ul>
<li><a href="#home">ホーム</a></li>
<li><a href="#news">ニュース</a></li>
<li><a href="#contact">お問い合わせ</a></li>
<li><a href="#about">会社概要</a></li>
</ul>
<div>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
<p>これは固定メニューの動作確認用のテキストです。</p>
</div>
</body>
</html>
実装時の注意点
position: fixed を使う場合、ナビゲーションバーが通常のドキュメントフローから外れるため、直下のコンテンツがバーの背後に隠れてしまうことがあります。これを防ぐには、サンプルのようにコンテンツ側に margin-top を設定して余白を確保しましょう。
また、z-index を適切に設定しておかないと、画像や他の要素がナビゲーションバーの上に重なって表示されることがあります。特にスライダーやモーダルを使用するサイトでは注意が必要です。
-
CSSで固定サイドナビゲーションメニューを作成する方法を解説
Webサイトの左側に常に表示され続ける固定サイドナビゲーションメニューは、ユーザビリティ向上に役立つ定番のUIパターンです。スクロールしてもメニューが画面から消えないため、訪問者はいつでもサイト内を移動できます。固定サイドナビの仕組みポイントとなるのはCSSのposition: fixed;です。このプロパティを指定すると、要素がブラウザの表示領域(ビューポート)を基準として固定され、ページをスクロールしても位置が変わりません。あわせてtopとleftを0に設定することで、画面の左端いっぱいにメニューを配置できます。コード例以下は、CSSだけで固定サイドナビゲーションメニューを作成する完全なコ
-
CSSで作る!スクロール時に画面上部へ固定されるナビゲーションバーの実装方法
CSSでスクロール時に固定されるナビゲーションバーを作成する方法Webサイトでページをスクロールしても画面上部に固定され続けるナビゲーションバーは、メニューへのアクセス性を保ち、ユーザビリティを大きく向上させる定番のUIテクニックです。CSSのpositionプロパティとJavaScriptを組み合わせることで、誰でも簡単に実装できます。この記事では、スクロールするとナビゲーションバーが画面上部にピタッと固定される仕組みを、実際のコード例とともにわかりやすく解説します。positionプロパティの基本構文CSSにおけるpositionプロパティの基本構文は次のとおりです。セレクタ {