Blog

CSS3 - Elenchi a discesa

Elenco a discesa base

Come creare una casella a discesa che viene visualizzata quando l'utente sposta il mouse su un elemento:

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

Spiegazione dell'esempio

HTML) Utilizzare qualsiasi elemento per aprire il contenuto a discesa, ad es. un elemento <span> o <button>.

Si utilizza un elemento contenitore (come <div>) per creare il contenuto a discesa e aggiungere tutto ciò che desideri al suo interno.

Avvolgi un elemento <div> attorno agli elementi per posizionare correttamente il contenuto del menu a discesa con CSS.

CSS) La classe .dropdown usa position:relative, che è necessario quando vogliamo che il contenuto del menu a discesa venga posizionato proprio sotto il pulsante a discesa (usando position:absolute).

La classe .dropdown-content include il contenuto effettivo del menu a discesa. È nascosto per impostazione predefinita e verrà visualizzato al passaggio del mouse (vedi sotto). Tenere presente che min-width è impostato a 160px. Sentirsi liberi di cambiarlo. Suggerimento: se si desidera che la larghezza del contenuto del menu a discesa sia pari a quella del pulsante a discesa, impostare width a 100% (e overflow:auto per abilitare lo scorrimento su schermi piccoli).

Invece di utilizzare un bordo, abbiamo utilizzato la proprietà CSS box-shadow per far sembrare il menu a discesa una "card".

Il selettore :hover viene utilizzato per mostrare il menu a discesa quando l'utente sposta il mouse sul pulsante a discesa.

Menu a discesa

Creare un menu a discesa che consenta all'utente di scegliere un'opzione da un elenco.

Questo esempio è simile al precedente, tranne per il fatto che aggiungiamo collegamenti all'interno della casella a discesa e applichiamo uno stile per adattarli a un pulsante a discesa:

<style>
/* Stile del pulsante a discesa */
.dropbtn {
  background-color: #4CAF50;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

/* Il contenitore <div>: necessario per posizionare il contenuto del menu a discesa */
.dropdown {
  position: relative;
  display: inline-block;
}

/* Contenuto a discesa (nascosto per impostazione predefinita) */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

/* Collegamenti all'interno del menu a discesa */
.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

/* Cambia il colore dei collegamenti a discesa al passaggio del mouse */
.dropdown-content a:hover {background-color: #f1f1f1}

/* Mostra il menu a discesa al passaggio del mouse */
.dropdown:hover .dropdown-content {
  display: block;
}

/* Cambia il colore di sfondo del pulsante a discesa quando viene mostrato il contenuto del menu a discesa */
.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>

Visualizza esempio

Contenuto del menu a discesa allineato a destra

Se si vuole che il menu a tendina vada da destra a sinistra, anziché da sinistra a destra, si aggiunge right: 0;

Esempio

.dropdown-content {
  right: 0;
}

Visualizza esempio

Altri esempi

Dropdown Image

Dropdown Navbar