Navegación Mobile-First
Parte de la sección Practical Frontend del Journey de HTML de Coddy — lección 8 de 35.
Navegación mobile-first significa comenzar con un menú sencillo y táctil para pantallas pequeñas, para luego mejorarlo para pantallas más grandes.
Comience con una estructura básica de navegación móvil: dentro del elemento <nav>, incluya un botón y una lista.
<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>Aplica primero los estilos para móviles. En pantallas pequeñas → muestra un botón de “menú” y oculta la lista.
.menu-toggle {
display: block;
//algunos estilos más
}
.nav-list {
display: none;
//algunos estilos más
}Luego, usa media queries para pantallas más grandes. En pantallas más grandes → muestra el menú como una lista horizontal en la parte superior y oculta el botón de “menú”.
@media (min-width: 768px) {
.menu-toggle {
display: none;
}
.nav-list {
display: flex;
}
}Este enfoque garantiza que la navegación esté optimizada primero para dispositivos móviles y luego se mejore para pantallas más grandes.
Desafío
FácilDado un archivo HTML con una navegación que contiene un botón de menú y una lista, actualmente la lista siempre es visible.
Tu tarea es corregir el estilo de navegación mobile-first mediante:
- Hacer que la lista de navegación esté oculta por defecto en pantallas móviles.
- Hacer que la lista de navegación sea visible en pantallas más grandes (
display: flex).
Hoja de referencia
La navegación "mobile-first" comienza con un menú sencillo y táctil para pantallas pequeñas, y luego se mejora para pantallas más grandes.
Estructura básica de navegación móvil:
<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>Estilo móvil (mostrar botón, ocultar lista):
.menu-toggle {
display: block;
}
.nav-list {
display: none;
}Estilo de escritorio con media queries (ocultar botón, mostrar lista horizontal):
@media (min-width: 768px) {
.menu-toggle {
display: none;
}
.nav-list {
display: flex;
}
}Pruébalo tú mismo
<!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>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Practical Frontend
2Estrategia Mobile-First
Qué significa “mobile-first”Tipografía Mobile-FirstNavegación Mobile-FirstImágenes Mobile-FirstFormularios Mobile-FirstDesafío de repaso