Jak tworzyć: klikalne rozwijane menu

Ucz się, jak używać CSS i JavaScript do tworzenia klikalnych rozwijanych menu.

Rozwijane menu

Rozwijane menu to menu włączalne, które pozwala użytkownikowi wybrać wartość z predefined listy:

Spróbuj sam

Stwórz klikalne rozwijane menu

Stwórz rozwijane menu, które po kliknięciu przez użytkownika będzie się pojawiało.

Krok 1 - Dodaj HTML:

<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>

Przykład wyjaśnienia:

Można użyć dowolnego elementu do otwarcia menu rozwijanego, na przykład elementu <button>, <a> lub <p>.

Użyj elementu kontenerowego (np. <div>) do utworzenia menu rozwijanego i dodaj do niego linki menu.

Użyj elementu <div>, aby otoczyć przycisk i <div>, aby poprawnie zlokalizować menu rozwijane za pomocą CSS.

Krok 2 - Dodaj CSS:

/* 下拉按钮 */
.dropbtn {
  background-color: #3498DB;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}
/* 鼠ow悬停和聚焦时的下拉菜单按钮 */
.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;
}
/* 鼠ow悬停时更改下拉菜单链接的颜色 */
.dropdown-content a:hover {background-color: #ddd;}
/* Wyświetl menu rozwijane (dodaj ten klasę do kontenera .dropdown-content, gdy użytkownik kliknie przycisk menu rozwijanego za pomocą JS) */
.show {display:block;}

Przykład wyjaśnienia:

Ustawiliśmy style tła, marginesów wewnętrznych, efektów przy najechaniu myszą itp. dla przycisku menu rozwijanego.

.dropdown klasa używa position:relativekiedy chcemy umieścić treść menu rozwijanego pod przyciskiem menu rozwijanego (używając position:absolute), to jest niezbędne.

.dropdown-content klasa zawiera rzeczywiste menu rozwijane. Domyślnie jest ukryte i będzie wyświetlane po najechaniu myszą (patrz niżej). Proszę zauważyć, że minimalna szerokość ustawiona jest na 160px. Możesz zmienić tę wartość według potrzeb. Wskazówka: Jeśli chcesz, aby szerokość treści menu rozwijanego była taka sama jak szerokość przycisku menu rozwijanego, ustaw szerokość na 100% (i używaj na małych ekranach) overflow:auto aby umożliwić przewijanie).

Zamiast krawędzi używamy box-shadow aś, aby menu rozwijane wyglądało jak karta. Używamy również z-index Umieść menu rozwijane przed innymi elementami.

Krok 3 - Dodaj JavaScript:

/* Przełącz stan ukrycia i wyświetlania treści menu rozwijanego, gdy użytkownik kliknie przycisk */
function myFunction() {
  document.getElementById("myDropdown").classList.toggle("show");
}
// Jeśli użytkownik kliknie poza menu rozwijanym, zamknij menu rozwijane
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');
      }
    }
  }
}

Spróbuj sam

Rozwijane menu wyśrodkowane do prawej

Spróbuj sam

Rozwijane menu w pasku nawigacyjnym

Spróbuj sam

Rozwijane menu wyszukiwania (filtr)

Spróbuj sam

Strony związane

Tutorial:Menu rozwijane CSS

Tutorial:Jak utworzyć menu rozwijane można podtrzymać