CSS ナビゲーションバー

❮ 前章へ 次章へ ❯

デモ:ナビゲーションバー

縦向

横向



ナビゲーションバー

使い易いナビゲーションは、どのような web サイトでも重要なことです。

CSS を使用することで、冴えない HTML メニューを美しいナビゲーションバーに変えることができます。


ナビゲーションバー = リンクの一覧

ナビゲーションバーには、ベースとして標準の HTML が必要です。

この例では、標準の HTML リストからナビゲーションバーを作成します。

ナビゲーションバーは、基本的にリンクのリストであるため、 <ul< と <li< 要素を使うことは完全に理にかなったものです:

<ul>
  <li><a href="default.html">Home</a></li>
  <li><a href="news.html">News</a></li>
  <li><a href="contact.html">Contact</a></li>
  <li><a href="about.html">About</a></li>
</ul>
Try it Yourself ❯

ここで、リストから中点とマージンとパディングを削除します:

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
}
Try it Yourself ❯

例の説明:

上記例のコードは、縦方向と横方向双方のナビゲーションバーで使用される標準のコードです。


縦向のナビゲーションバー

縦向のナビゲーションバーを作るためは、上記コードに加えて、<a> 要素のスタイルを設定する必要があります:

li a {
    display: block;
    width: 60px;
}
Try it Yourself ❯

例の説明:

ブロック要素として表示したときに、利用できる全ての幅に広がるよう、<ul> の幅を設定し、<a> の幅を削除することができます。 これは、前の例と同じ結果になります:

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    width: 60px;
}

li a {
    display: block;
}
Try it Yourself ❯

縦向ナビゲーションバーの例

灰色の背景色を持ち、マウスを上に移動したときにリンクの背景色が変る、基本的な縦向ナビゲーションバーを作成します:

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    width: 200px;
    background-color: #f1f1f1;
}

li a {
    display: block;
    color: #000;
    padding: 8px 0 8px 16px;
    text-decoration: none;
}

/* Change the link color on hover */
li a:hover {
    background-color: #555;
    color: white;
}
Try it Yourself ❯

Active/Current ナビゲーション・リンク

ユーザがどのページにいるのかを分かるようにするため、現在のリンクに "active" クラスを追加します:

.active {
    background-color: #4CAF50;
    color: white;
}
Try it Yourself ❯

リンクの中央揃えとボーダーの追加

リンクを中央揃えにするため、<li> または <a> に text-align:center を追加します。

ナビゲーションバーの周りにボーダーを追加するには、<ul> に border プロパティを追加します。 ナビゲーションバーの内側にもボーダーが必要な場合は、最後の一つを除いて、すべての <li> 要素に border-bottom を追加します:

ul {
    border: 1px solid #555;
}

li {
    text-align: center;
    border-bottom: 1px solid #555;
}

li:last-child {
    border-bottom: none;
}
Try it Yourself ❯

高さ全体に固定された縦向ナビゲーションバー

"sticky" サイド・ナビゲーションは、高さ全体に固定された縦向ナビゲーションバーを作成します:

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    width: 25%;
    background-color: #f1f1f1;
    height: 100%; /* Full height */
    position: fixed; /* Make it stick, even on scroll */
    overflow: auto; /* Enable scrolling if the sidenav has too much content */
}
Try it Yourself ❯

注: この例は、モバイル・デバイスでは適切に動作しないかもしれません。


横向のナビゲーションバー

横向のナビゲーションバーを作成するためには、2つの方法があります。 リスト項目を、インラインフロートで使用する方法です。

インライン・リスト項目

横向のナビゲーションバーを作るための 1 つの方法は、上記の"標準"コードに加え、 <li> 要素をインラインとして指定することです:

li {
    display: inline;
}
Try it Yourself ❯

例の説明:

リスト項目をフロート

横向のナビゲーションバーを作るためのもう 1 つの方法は、<li> 要素をフロートし、ナビゲーションリンクのレイアウトを指定することです:

li {
    float: left;
}

a {
    display: block;
    padding: 8px;
    background-color: #dddddd;
}
Try it Yourself ❯

例の説明:

チップ: 幅全体に背景色を設定したい場合は、各 <a> の代わりに <ul> に背景色を追加します:

ul {
    background-color: #dddddd;
}
Try it Yourself ❯

横向きナビゲーションバーの例

暗い背景色を持ち、マウスを上に移動したときにリンクの背景色が変る、基本的な横向きナビゲーションバーを作成します:

ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background-color: #333;
}

li {
    float: left;
}

li a {
    display: block;
    color: white;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
}

/* Change the link color to #111 (black) on hover */
li a:hover {
    background-color: #111;
}
Try it Yourself ❯

Active/Current ナビゲーション・リンク

ユーザがどのページにいるのかを分かるようにするため、現在のリンクに "active" クラスを追加します:

.active {
    background-color: #4CAF50;
}
Try it Yourself ❯

右揃えのリンク

右にリスト項目をフロートすることによる右揃えのリンク (float:right;):

<ul>
  <li><a href="#home">Home</a></li>
  <li><a href="#news">News</a></li>
  <li><a href="#contact">Contact</a></li>
  <li style="float:right"><a class="active" href="#about">About</a></li>
</ul>
Try it Yourself ❯

ボーダーの仕切り

リンクの仕切りを作成するため、<li> に border-right プロパティを追加します:

/* Add a gray right border to all list items, except the last item (last-child) */
li {
    border-right: 1px solid #bbb;
}

li:last-child {
    border-right: none;
}
Try it Yourself ❯

固定のナビゲーションバー

ユーザがページをスクロールしたときも、ナビゲーション・バーをページの上部または下部に留まるようにします:

上部に固定

ul {
    position: fixed;
    top: 0;
    width: 100%;
}
Try it Yourself ❯

下部に固定

ul {
    position: fixed;
    bottom: 0;
    width: 100%;
}
Try it Yourself ❯

注: これらの例は、モバイル・デバイスでは正しく動作しないかもしれません。


灰色の横向きナビゲーションバー

薄い灰色ののボーダーを持つ灰色の横向きナビゲーション・バーの例:

ul {
    border: 1px solid #e7e7e7;
    background-color: #f3f3f3;
}

li a {
    color: #666;
}
Try it Yourself ❯

Examples

その他の例

レスポンシブ・トップ・ナビゲーション
レスポンシブなトップ・ナビゲーションを作るための CSS3 メディアクエリの使用方法。

レスポンシブ・サイド・ナビゲーション
レスポンシブなサイド・ナビゲーションを作るための CSS3 メディアクエリの使用方法。

ドロップダウン・ナビゲーション・バー
ナビゲーション・バーの中にドロップダウン・メニューの追加方法。


❮ 前章へ 次章へ ❯