Hoe te maken: klikbare dropdown-menu

Leer hoe je een klikbare dropdown-menu kunt maken met CSS en JavaScript.

Dropdown-menu

Een dropdown-menu is een omslagbaar menu dat de gebruiker toestaat om een waarde uit een vooraf gedefinieerde lijst te kiezen:

Probeer het zelf

Maak een klikbare dropdown-menu

Maak een dropdown-menu aan die verschijnt wanneer de gebruiker op de knop klikt.

Stap 1 - Voeg HTML toe:

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

Voorbeeld uitleg:

可以使用任何元素来打开下拉菜单,例如 <button>、<a> 或 <p> 元素。

使用容器元素(如 <div>)来创建下拉菜单,并在其中添加下拉菜单链接。

使用 <div> 元素将按钮和 <div> 包裹起来,以便使用 CSS 正确定位下拉菜单。

第二步 - 添加 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;}
/* Toon het naar beneden menu (wanneer de gebruiker op de knop van het naar beneden menu klikt, voeg deze klasse toe aan de .dropdown-content container met JS) */
.show {display:block;}

Voorbeeld uitleg:

we hebben achtergrondkleur, inkeping, muisover-effecten en andere stijlen ingesteld voor de knop van het naar beneden menu.

.dropdown klasse om position:relative, wanneer we de inhoud van het naar beneden menu willen plaatsen onder de knop van het naar beneden menu (gebruik position:absolute), dit is noodzakelijk.

.dropdown-content klasse bevat de daadwerkelijke naar beneden menu. Het is standaard verborgen en wordt weergegeven bij muisover (zie hieronder). Let op, de minimale breedte is ingesteld op 160px. U kunt deze waarde naar wens wijzigen. Tip: Als u de breedte van de inhoud van het naar beneden menu wilt laten overeenkomen met de breedte van de knop, kunt u de breedte instellen op 100% (en op kleine schermen gebruiken overflow:auto om scrollen mogelijk te maken).

We gebruiken geen rand, maar box-shadow eigenschap, zodat het naar beneden menu eruitziet als een "kaart". We gebruiken ook z-index Plaats het naar beneden menu voor andere elementen.

Derde stap - Voeg JavaScript toe:

/* Wissel de verborgen en weergegeven status van de inhoud van het naar beneden menu wanneer de gebruiker op de knop klikt */
function myFunction() {
  document.getElementById("myDropdown").classList.toggle("show");
}
// Als de gebruiker buiten het naar beneden menu klikt, sluit dan het naar beneden menu
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');
      }
    }
  }
}

Probeer het zelf

Naar rechts uitgelijnd naar beneden menu

Probeer het zelf

Naar beneden menu in de navigatiebalk

Probeer het zelf

Zoek (filter) naar beneden menu

Probeer het zelf

Gerelateerde pagina's

Handleiding:CSS dropdown menu

Handleiding:Hoe te maken: hover dropdown menu