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>
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.
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>
Se si vuole che il menu a tendina vada da destra a sinistra, anziché da sinistra a destra, si aggiunge
right: 0;
.dropdown-content {
right: 0;
}