Menu a discesa
Fa parte della sezione Frontend pratico del percorso HTML di Coddy. Lezione 20 di 35.
Un menu a discesa è un elemento di navigazione che mostra altri link quando l’utente ci passa sopra con il mouse o lo mette a fuoco. Sebbene i menu a discesa possano essere realizzati usando JavaScript, in questo capitolo ci concentreremo su un approccio basato solo su CSS, che usa :hover o :focus-within per mostrare il menu nascosto.
Perché usarle:
- Risparmiano spazio nelle barre di navigazione.
- Mantengono l'interfaccia pulita e organizzata.
- Funzionano bene nei design mobile-first e responsive, se adattate correttamente.
HTML:
<div class="dropdown">
<button class="dropdown-button">Menu</button>
<div class="dropdown-content">
<a href="#">Option 1</a>
<a href="#">Option 2</a>
<a href="#">Option 3</a>
</div>
</div>CSS:
//The .dropdown is position: relative
//so the dropdown content can be positioned correctly with position: absolute.
.dropdown {
position: relative;
display: inline-block;
}//The .dropdown-content is hidden by default using display: none.
.dropdown-content {
display: none;
position: absolute;
}//When the user hovers over the .dropdown container,
//the .dropdown-content is shown using display: block.
.dropdown:hover .dropdown-content {
display: block;
}Con questo codice, quando passi il cursore sul contenitore del menu a discesa (compreso il pulsante), il contenuto del menu a discesa apparirà.
Sfida
FacileTi viene fornito l'HTML di un menu a discesa con un pulsante etichettato "Select Color" e tre opzioni: Red, Green, Blue.
Il tuo compito è applicare stile al menu a discesa con CSS in modo che:
- Le opzioni siano nascoste per impostazione predefinita.
- Le opzioni diventino visibili quando l'utente passa il puntatore sopra il contenitore del menu a discesa.
Provalo tu
<!DOCTYPE html>
<html>
<head>
<title>Dropdown menu</title>
<style>
body {
font-family: Arial, sans-serif;
padding: 50px;
background-color: #f0f0f0;
}
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-button {
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
border: 1px solid #333;
border-radius: 5px;
background-color: #ffffff;
}
.dropdown-content {
position: absolute;
top: 100%;
left: 0;
background-color: #ffffff;
min-width: 160px;
border: 1px solid #ccc;
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
display: block;
padding: 10px;
text-decoration: none;
color: #333;
}
.dropdown-content a:hover {
background-color: #f2f2f2;
}
/* Show dropdown on hover or focus */
.dropdown:hover .dropdown-content,
.dropdown:focus-within .dropdown-content {
}
</style>
</head>
<body>
<div class="dropdown">
<button class="dropdown-button">Select Color</button>
<div class="dropdown-content">
<a href="#">Red</a>
<a href="#">Green</a>
<a href="#">Blue</a>
</div>
</div>
</body>
</html>
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Frontend pratico
2Strategia mobile-first
Cosa significa «mobile-first»Tipografia mobile-firstNavigazione mobile-firstImmagini mobile-firstModuli mobile-firstSfida di riepilogo5Componenti dell’interfaccia utente
Menu a discesaSchedeBadgeSuggerimentiBanner di notificaSfida di riepilogoEsercitati da solo: Playground Web