どう作成するか:レスポンシブ下部ナビゲーションメニュー

CSSとJavaScriptを使用してレスポンシブ下部ナビゲーションメニューを作成する方法を学習します。

レスポンシブ下部ナビゲーション

ブラウザのウィンドウサイズを調整して、レスポンシブなナビゲーションメニューの動作を確認してください:

実際に試してみる

レスポンシブな下部ナビゲーションバーを作成

第1ステップ - HTMLを追加:

<div class="navbar" id="myNavbar">
  <a href="#home">Home</a>
  <a href="#news">News</a>
  <a href="#contact">Contact</a>
  <a href="#about">About</a>
  <a href="javascript:void(0);" class="icon" onclick="myFunction()">☰</a>
</div>

class="icon"を持つリンクは、小画面でナビゲーションバーを開閉するために使用されます。

第2ステップ - CSSを追加:

/* ナビゲーションバーをページの下部に配置し、固定する */
.navbar {
  background-color: #333;
  overflow: hidden;
  position: fixed;
  bottom: 0;
  width: 100%;
}
/* ナビゲーションバー内のリンクのスタイルを設定 */
.navbar a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-size: 17px;
}
/* マウスオーバー時のリンクの色を変更 */
.navbar a:hover {
  background-color: #ddd;
  color: black;
}
/* 活動リンクに緑色の背景色を追加 */
.navbar a.active {
  background-color: #04AA6D;
  color: white;
}
/* 小画面で開閉するナビゲーションバーのリンクを隠します */
.navbar .icon {
  display: none;
}

メディアクエリを追加:

/* スクリーン幅が600ピクセル以下の場合、最初のリンク("Home")以外のすべてのリンクを隠します。ナビゲーションバーを開閉するリンク(.icon)を含むリンクを表示 */
@media screen and (max-width: 600px) {
  .navbar a:not(:first-child) {display: none;}
  .navbar a.icon {
    float: right;
    display: block;
  }
}
/* ユーザーがアイコンをクリックしたとき、JavaScriptを使用して「responsive」クラスをナビゲーションバーに追加 */
このクラスは、ナビゲーションバーが小画面でより良い見た目になるようにします(リンクを水平ではなく垂直に表示します) */
@media screen and (max-width: 600px) {
  .navbar.responsive a.icon {
    position: absolute;
    right: 0;
    bottom: 0;
  }
  .navbar.responsive a {
    float: none;
    display: block;
    text-align: left;
  }
}

第3ステップ - JavaScriptを追加:

/* ユーザーがアイコンをクリックしたとき、ナビゲーションバーに「responsive」クラスを追加および削除して切り替える */
function myFunction() {
  var x = document.getElementById("myNavbar");
  if (x.className === "navbar") {
    x.className += " responsive";
  }
    x.className = "navbar";
  }
}

実際に試してみる

関連ページ

チュートリアル:CSSナビゲーションバー