Código con Flexbox (versión moderna)
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Menú con Flexbox</title> </head> <style> body { margin: 0; padding: 0; } ul { list-style-type: none; /* Quita los puntos de la lista */ margin: 0; padding: 0; background-color: #333333; /* Flexbox propiedades */ display: flex; /* Activa flexbox en el contenedor */ /* flex-direction: row; /* Por defecto es row, no necesario escribirlo */ } ul li a { display: block; /* Hace todo el área clickable */ color: white; text-align: center; padding: 14px 16px; text-decoration: none; } ul li a:hover { background-color: #111111; } </style> <body> <nav> <ul> <li><a href="#home">Home</a></li> <li><a href="#news">News</a></li> <li><a href="#contact">Contact</a></li> <li><a href="#about">About</a></li> </ul> </nav> </body> </html>
¿Qué cambió con Flexbox?
1. Eliminamos:
css
ul li { float: left; /* ❌ Ya no necesario */ } ul { overflow: hidden; /* ❌ Ya no necesario para contener floats */ }
2. Agregamos:
css
ul { display: flex; /* ✅ Activa flexbox en el contenedor */ }
¿Cómo funciona Flexbox aquí?
display: flex;en el<ul>:Convierte el
<ul>en un contenedor flexSus hijos directos (los
<li>) se convierten en ítems flexPor defecto, los ítems flex se alinean en fila horizontal
Comportamiento automático de flexbox:
Los
<li>se colocan uno al lado del otro automáticamenteNo necesitamos
floatpara nadaEl contenedor
<ul>mantiene su altura sin necesidad deoverflow: hidden
Ventajas de Flexbox en este caso:
| Aspecto | Con Float | Con Flexbox |
|---|---|---|
| Código | Necesita overflow: hidden | Más limpio, menos código |
| Alineación | Limitada | Muchas opciones (justify-content, align-items) |
| Responsive | Más complicado | Fácil de adaptar |
Podemos mejorar aún más con Flexbox:
css
ul { display: flex; /* Opcional: distribuir los items */ justify-content: flex-start; /* Alineados a la izquierda (por defecto) */ /* justify-content: center; Centrados */ /* justify-content: space-around; Espacio alrededor */ /* justify-content: space-between; Espacio entre items */ }
Resultado visual con Flexbox:
text
[ Home ][ News ][ Contact ][ About ] ← Exactamente igual que antes
¡Pero con menos código y más flexibilidad para futuros cambios! 🚀
¿Te gustaría probar alguna de las opciones de justify-content para ver cómo cambia la alineación del menú?
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Comentarios
Publicar un comentario