La Etiqueta NAV

Define una sección de enlaces de navegación en un documento HTML.
La etiqueta <nav> (abreviatura de navigation) define una sección de enlaces de navegación en un documento HTML. Es un elemento semántico que ayuda a los motores de búsqueda, lectores de pantalla y desarrolladores a identificar los bloques principales de navegación de un sitio web.
Casos comunes de uso:
-
Menús principales (header).
-
Menús laterales (sidebar).
-
Tablas de contenido.
-
Enlaces de paginación.
-
Breadcrumbs (migas de pan).
Sintaxis básica
<nav> <!-- Lista de enlaces --> </nav>
Ejemplos prácticos
Menú principal horizontal
El uso más típico: un menú en el encabezado de la página.
<header>
<nav>
<ul>
<li><a href="#inicio">Inicio</a></li>
<li><a href="#servicios">Servicios</a></li>
<li><a href="#contacto">Contacto</a></li>
</ul>
</nav>
</header>
Menú lateral (sidebar)
Para navegación secundaria:
<header>
<nav>
<ul>
<li><a href="#inicio">Inicio</a></li>
<li><a href="#servicios">Servicios</a></li>
<li><a href="#contacto">Contacto</a></li>
</ul>
</nav>
</header>
Paginación
En blogs o listas de productos:
<nav class="paginacion"> <a href="#">« Anterior</a> <a href="#">1</a> <a href="#">2</a> <a href="#">Siguiente »</a> </nav>
Breadcrumbs (migas de pan)
Muestra la ubicación del usuario en el sitio:
<nav aria-label="Breadcrumb">
<ol>
<li><a href="#inicio">Inicio</a></li>
<li><a href="#blog">Blog</a></li>
<li>Título del artículo</li>
</ol>
</nav>
Estilización con CSS
Personaliza el menú con CSS para que sea visualmente atractivo y responsivo:
Ejemplo: Menú horizontal con flexbox
nav {
background: #333;
padding: 1rem;
}
nav ul {
list-style: none;
display: flex;
gap: 20px;
margin: 0;
padding: 0;
}
nav a {
color: white;
text-decoration: none;
padding: 8px 12px;
border-radius: 4px;
}
nav a:hover {
background: #555;
}
/* Estilo para móviles */
@media (max-width: 768px) {
nav ul {
flex-direction: column;
}
}
Accesibilidad y buenas prácticas
Usa listas (<ul>/<li>) para estructurar los enlaces, ya que los lectores de pantalla las interpretan mejor.
Agrega aria-label si hay múltiples menús en la página:
<nav aria-label="Menú principal"> <!-- Enlaces --> </nav>
Evita anidar <nav> dentro de <nav>:
Cada bloque de navegación debe tener su propia etiqueta.
No uses <nav> para grupos pequeños de enlaces (ej: footer con enlaces legales). Para esos casos, usa <footer> sin <nav>.
Errores comunes
Usar <nav> para cualquier grupo de enlaces:
<!-- Incorrecto --> <nav> <a href="#legal">Aviso legal</a> <a href="#privacidad">Privacidad</a> </nav> <!-- Correcto (si no es navegación principal) --> <footer> <a href="#legal">Aviso legal</a> </footer>
Ignorar la jerarquía semántica:
No coloques contenido no relacionado dentro de <nav>:
<!-- Incorrecto --> <nav> <h1>Título de la página</h1> <ul>...</ul> </nav>
Ejemplo avanzado: Menú responsivo con hamburguesa
Combina <nav> con CSS y JavaScript para móviles:
<nav class="menu-movil">
<button id="boton-menu">☰</button>
<ul id="lista-menu" class="oculto">
<li><a href="#inicio">Inicio</a></li>
<li><a href="#servicios">Servicios</a></li>
</ul>
</nav>
<script>
document.getElementById('boton-menu').addEventListener('click', () => {
document.getElementById('lista-menu').classList.toggle('oculto');
});
</script>
<style>
.oculto {
display: none;
}
@media (min-width: 769px) {
#boton-menu {
display: none;
}
#lista-menu.oculto {
display: flex;
}
}
</style>
Casos de uso reales
-
E-commerce: Menú de categorías.
-
Blogs: Navegación entre entradas.
-
Portafolios: Acceso a secciones como "Proyectos" o "Sobre mí".
Conclusión
La etiqueta <nav> es esencial para estructurar la navegación de tu sitio web de manera semántica y accesible. Al usarla correctamente:
- Mejoras el SEO.
- Facilitas la experiencia de usuarios con discapacidades.
- Organizas tu código para un mantenimiento más sencillo.
¡Inclúyela siempre que necesites agrupar enlaces de navegación principales!