CSS 水平ナビゲーションバー

水平ナビゲーションバー

水平ナビゲーションバーを作成する方法には、以下の2つがあります:インラインまたはフロートリストアイテム。

インラインリストアイテム

水平ナビゲーションバーを作成する方法の一つは、前の章の「標準」コードに加えて、<li>要素をinlineに指定することです:

li {
  display: inline;
}

実際に試してみてください

例説明:

display: inline; - デフォルトでは、<li>要素はブロック要素です。ここでは、各リストアイテムの前に後ろに余白を削除し、一行に表示するようにします

フロートリストアイテム

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

li {
  float: left;
}
a {
  display: block;
  padding: 8px;
  background-color: #dddddd;
}

実際に試してみてください

例説明:

  • float: left; - floatを使用してブロック要素を隣接させる
  • display: block; - リンクをブロック要素として表示することで、全体のリンクエリアがクリック可能になります(テキストのみではなく)、また、フィルティング(必要であれば、高さ、幅、マージンなど)を指定できます
  • padding: 8px; - ブロック要素をより美しくする
  • background-color: #dddddd; - 各要素に灰色の背景色を追加

ヒント:全幅の背景色が必要な場合は、background-colorを<ul>に追加してくださいが、各<a>要素には追加しないでください:

ul {
  background-color: #dddddd;
}

実際に試してみてください

水平ナビゲーションバーの例

深色背景色の基本水平ナビゲーションバーを作成し、ユーザーがリンクの上にマウスを合わせるとリンクの背景色が変更されます:

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;
}
/* 当鼠标悬停时把链接颜色更改为 #111(黑色) */
li a:hover {
  background-color: #111;
}

実際に試してみてください

活动/当前导航链接

向当前链接添加 "active" 类,这样用户就知道他/她在哪个页面上:

.active {
  background-color: #4CAF50;
}

実際に試してみてください

右对齐链接

通过将列表项向右浮动来右对齐链接(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>

実際に試してみてください

边框分隔栏

border-right 属性添加到 <li>,以创建链接分隔符:

/* 为所有列表项添加灰色右边框,最后一项(last-child)除外 */
li {
  border-right: 1px solid #bbb;
}
li:last-child {
  border-right: none;
}

実際に試してみてください

固定的导航栏

使导航栏保持在页面的顶部或底部,即使用户滚动页面也是如此:

固定在顶部

ul {
  position: fixed;
  top: 0;
  width: 100%;
}

実際に試してみてください

固定在底部

ul {
  position: fixed;
  bottom: 0;
  width: 100%;
}

実際に試してみてください

注意:固定定位在移动设备上可能无法正常工作。

灰色水平导航栏

带有细灰色边框的灰色水平导航栏的例

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

実際に試してみてください

粘性导航栏

为 <ul> 添加 position: sticky;,以创建粘性导航栏。

粘性元素会根据滚动位置在相对和固定之间切换。它是相对定位的,直到在视口中遇到给定的偏移位置为止 - 然后将其“粘贴”在适当的位置(比如 position:fixed)。

ul {
  position: -webkit-sticky; /* Safari */
  position: sticky;
  top: 0;
}

実際に試してみてください

注意:Internet Explorer、Edge 15およびそれ以前のバージョンでは、粘性定位がサポートされていません。Safariでは、-webkit-プレフィックスが必要です(上記の例を参照してください)。さらに、以下を指定する必要があります toprightbottom または left 粘性定位が機能するように少なくとも1つを選択してください。

他の例も見てみましょう

レスポンシブトップナビゲーションバー
CSS メディアクエリを使用してレスポンシブトップナビゲーションを创建する方法
レスポンシブサイドナビゲーションバー
CSS メディアクエリを使用してレスポンシブサイドナビゲーションを创建する方法
ドロップダウンナビゲーションバー
ナビゲーションバーにドロップダウンメニューを追加する方法