CSS ドロップダウン

❮ 前章へ 次章へ ❯

CSS で ホバーのできるドロップダウンを作成します。


デモ:ドロップダウンの例

下の例の上にマウスを移動してください:


基本的なドロップダウン

ユーザが、要素の上にマウスを移動したときに表示される、ドロップダウンボックスを作成します。

<style>
.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    padding: 12px 16px;
    z-index: 1;
}

.dropdown:hover .dropdown-content {
    display: block;
}
</style>

<div class="dropdown">
  <span>Mouse over me</span>
  <div class="dropdown-content">
    <p>Hello World!</p>
  </div>
</div>
Try it Yourself ❯

例の説明

HTML) ドロップダウンコンテンツを開くために、或る要素、例えば <span> とか <button> 要素を使用します。

ドロップダウン・コンテンツを作成し、その中に必要なものを追加するために、コンテナ要素(例えば <div>)を使用します。

CSS により正しくドロップダウン・コンテンツを配置するために、要素の周りを <div> 要素でラップします。

CSS).dropdown クラスは、(position:absoluteを使用することで) ドロップダウン・ボタンの右下に ドロップダウンコ・ンテンツを配置したいために、position:relative を使用します 。

.dropdown-content クラスには、実際のドロップダウンのコンテンツが含まれています。 これは、デフォルトでは非表示でホバリング時に表示されます(下記参照)。 min-width は、160 ピクセルに設定されていることに注意してください。自由に変更してください。 チップ: ドロップダウン・コンテンツの幅をドロップダウン・ボタンと同じ幅にしたい場合は、 width に 100% を(そして、小型画面でのスクロールを可能にするために overflow:auto を)を設定します。

ボーダーを使う代わりに、ドロップダウンメニューが「カード」のように見えるようにするため、CSS3 box-shadow プロパティを使用しています。

:hover セレクタは、ユーザがドロップダウン・ボタンの上にマウスを移動したときに、ドロップダウン・メニューを 表示するために使用しています。


ドロップダウンメニュー

リストからオプションを選択することを可能にするドロップダウンメニューを作成します:

この例は、ドロップダウンボックス内へのリンクの追加と、スタイル済のドロップダウン・ボタンに合わせてスタイルをすることを除き、 前のものと同じです:

<style>
/* Style The Dropdown Button */
.dropbtn {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

/* The container <div> - needed to position the dropdown content */
.dropdown {
    position: relative;
    display: inline-block;
}

/* Dropdown Content (Hidden by Default) */
.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

/* Links inside the dropdown */
.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

/* Change color of dropdown links on hover */
.dropdown-content a:hover {background-color: #f1f1f1}

/* Show the dropdown menu on hover */
.dropdown:hover .dropdown-content {
    display: block;
}

/* Change the background color of the dropdown button when the dropdown content is shown */
.dropdown:hover .dropbtn {
    background-color: #3e8e41;
}
</style>

<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
    <a href="#">Link 1</a>
    <a href="#">Link 2</a>
    <a href="#">Link 3</a>
  </div>
</div>
Try it Yourself ❯

ドロップダウン・コンテンツの右揃え

左にあるドロップダウンメニューを右にしたい場合、left に代えて right にして、right: 0; を追加します:

.dropdown-content {
    right: 0;
}
Try it Yourself ❯

Examples

その他の例

ドロップダウン・イメージ
この例は、ドロップダウンボックス内の画像やその他のコンテンツを追加する方法のデモです。

ドロップダウン・ナビゲーションバー
この例は、ナビゲーションバーの内側にドロップダウンメニューを追加する方法のデモです。


❮ 前章へ 次章へ ❯