Navigazione mobile-first
Fa parte della sezione Frontend pratico del percorso HTML di Coddy. Lezione 8 di 35.
Navigazione mobile-first significa partire da un menu semplice e adatto al touchscreen per gli schermi piccoli, per poi migliorarlo per gli schermi più grandi.
Inizia con una struttura di navigazione mobile di base: all'interno dell'elemento <nav>, includi un pulsante e un elenco.
<nav class="main-nav">
<button class="menu-toggle">Menu</button>
<ul class="nav-list">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>Applica prima lo stile per dispositivi mobili. Sugli schermi piccoli → mostra un pulsante “menu” e nascondi l’elenco.
.menu-toggle {
display: block;
//some more styles
}
.nav-list {
display: none;
//some more styles
}Poi usa le media query per gli schermi più grandi. Sugli schermi più grandi → mostra il menu come elenco orizzontale in alto e nascondi un pulsante “menu”.
@media (min-width: 768px) {
.menu-toggle {
display: none;
}
.nav-list {
display: flex;
}
}Questo approccio garantisce che la navigazione sia ottimizzata prima per i dispositivi mobili e poi migliorata per gli schermi più grandi.
Sfida
FacileDato un file HTML con una navigazione contenente un pulsante del menu e un elenco, al momento l’elenco è sempre visibile.
Il tuo compito è correggere lo stile della navigazione mobile-first:
- Nascondendo l’elenco di navigazione per impostazione predefinita sugli schermi dei dispositivi mobili.
- Rendendo visibile l’elenco di navigazione sugli schermi più grandi (
display: flex).
Provalo tu
<!DOCTYPE html>
<html>
<head>
<title>Mobile-First Navigation</title>
<style>
:root {
--primary-color: #4a6de5;
--text-color: #333333;
}
.nav-container {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-weight: bold;
color: var(--primary-color);
text-decoration: none;
font-size: 1.5rem;
}
.menu-toggle {
display: block;
background-color: var(--primary-color);
color: white;
border: none;
padding: 0.5rem 1rem;
cursor: pointer;
}
.nav-list {
list-style: none;
padding: 0;
margin: 1rem 0 0 0;
width: 100%;
}
.nav-list li a {
color: var(--text-color);
text-decoration: none;
display: block;
padding: 0.5rem 0;
}
@media (min-width: 768px) {
.menu-toggle {
display: none;
}
.nav-list {
margin: 0;
width: auto;
}
.nav-list li {
margin: 0 0 0 1.5rem;
}
}
</style>
</head>
<body>
<header class="site-header">
<nav class="nav-container">
<a href="#" class="logo">MySite</a>
<button class="menu-toggle">Menu</button>
<ul class="nav-list">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</header>
</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