どのように作成するか:クリック可能なドロップダウンメニュー

CSSとJavaScriptを使用してクリック可能なドロップダウンメニューを作成する方法を学びます。

ドロップダウンメニュー

ドロップダウンメニューは、ユーザーが事前に定義されたリストから値を選択できる切り替え可能なメニューです:

自分で試してみてください

クリック可能なドロップダウンメニューを作成します

ユーザーがボタンをクリックしたときに表示されるドロップダウンメニューを作成します。

第1步 - 添加 HTML:

<div class="dropdown">
  <button onclick="myFunction()" class="dropbtn">Dropdown</button>
  <div id="myDropdown" class="dropdown-content">
    <a href="#">リンク1</a>
    <a href="#">リンク2</a>
    <a href="#">リンク3</a>
  </div>
</div>

例説明:

ドロップダウンを開くには、<button>、<a>や<p>要素など、どんな要素でも使用できます。

コンテナ要素(例:<div>)を使用してドロップダウンメニューを作成し、その中にドロップダウンリンクを追加します。

ボタンと<div>を<div>要素で囲んで、CSSを使用してドロップダウンメニューを正確に位置決定します。

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

/* ドロップダウンボタン */
.dropbtn {
  background-color: #3498DB;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}
/* マウスオーバーおよびフォーカス時のドロップダウンボタン */
.dropbtn:hover, .dropbtn:focus {
  background-color: #2980B9;
}
/* コンテナ <div> - ドロップダウンメニューの内容を位置決定するための要素 */
.dropdown {
  position: relative;
  display: inline-block;
}
/* ドロップダウンメニューの内容(デフォルトで非表示) */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}
/* ドロップダウンメニュー内のリンク */
.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}
マウスオーバー時、ドロップダウンメニューのリンクの色を変更します。
.dropdown-content a:hover {background-color: #ddd;}
/* ドロップダウンメニューを表示します(ユーザーがドロップダウンメニューのボタンをクリックしたとき、JSを使用してこのクラスを .dropdown-content コンテナに追加します) */
.show {display:block;}

例説明:

を使用して、ドロップダウンメニューのボタンに背景色、インラインパディング、ホバー効果などのスタイルを設定します。

.dropdown を使用して position:relativeを使用して、ドロップダウンメニューの内容をドロップダウンメニューのボタンの正下方に配置したい場合( position:absolute)は必須です。

.dropdown-content クラスは実際のドロップダウンメニューを含んでいます。デフォルトでは非表示で、マウスオーバー時に表示されます(以下を参照)。注意:最小幅は160pxに設定されています。必要に応じてこの値を変更できます。ヒント:ドロップダウンメニューの内容の幅をドロップダウンメニューのボタンの幅と同じにしたい場合は、幅を100%(小画面では)に設定できます。 overflow:auto を使用してスクロールを有効にします)。

ボーダーを使用せず、 box-shadow 属性を使用して、ドロップダウンメニューが「カード」のように見えるようにします。また、 z-index ドロップダウンメニューを他の要素の前に配置します。

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

/* ユーザーがボタンをクリックしたとき、ドロップダウンメニューの内容の非表示と表示の状態を切り替えます */
function myFunction() {
  document.getElementById("myDropdown").classList.toggle("show");
}
// ユーザーがドロップダウンメニューの外でクリックした場合、ドロップダウンメニューを閉じます
window.onclick = function(event) {
  if (!event.target.matches('.dropbtn')) {
    var dropdowns = document.getElementsByClassName("dropdown-content");
    var i;
    for (i = 0; i < dropdowns.length; i++) {
      var openDropdown = dropdowns[i];
      if (openDropdown.classList.contains('show')) {
        openDropdown.classList.remove('show');
      }
    }
  }
}

自分で試してみてください

右寄せドロップダウンメニュー

自分で試してみてください

ナビゲーションバーのドロップダウンメニュー

自分で試してみてください

検索(フィルタリング)ドロップダウンメニュー

自分で試してみてください

関連ページ

チュートリアル:CSSドロップダウンメニュー

チュートリアル:ホバードロップダウンメニューの作成方法