Hoe te maken: klikbare dropdown-menu
- Vorige pagina Hover dropdown menu
- Volgende pagina Cascading 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:
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'); } } } }
Naar rechts uitgelijnd naar beneden menu
Naar beneden menu in de navigatiebalk
Zoek (filter) naar beneden menu
Gerelateerde pagina's
Handleiding:CSS dropdown menu
Handleiding:Hoe te maken: hover dropdown menu
- Vorige pagina Hover dropdown menu
- Volgende pagina Cascading dropdown menu