Display, posicionamiento y maquetación moderna con Flexbox (navbars, grids de cards, footers).
Display y Positioning
- Display en la práctica:
blockocupa todo el ancho,inlinesolo el ancho del contenido yinline-blockcombina ambos para permitir dimensiones.flexhabilita layouts modernos ynoneoculta elementos sin reservar espacio. - Position explicado:
statices el flujo normal,relativepermite desplazar sin salir del flujo,absolutesale del flujo y se posiciona respecto al ancestro conposition,fixedse pega al viewport ystickyse fija al hacer scroll. - Casos de uso reales:
absolutepara badges sobre tarjetas,fixedpara botones flotantes,stickypara headers que permanecen visibles al desplazarse.
Fundamentos de Flexbox
css1.container { 2 display: flex; 3 flex-direction: row; /* row | column */ 4 justify-content: space-between; 5 align-items: center; 6 gap: 20px; 7 flex-wrap: wrap; 8} 9.item { 10 flex: 1 1 240px; /* grow shrink basis */ 11 align-self: center; 12}
- Ejes principal y cruzado;
flex-direction,justify-content,align-items. flex-wrap,gapy cómo crear grillas simples.- Propiedades de ítems:
flex,flex-basis,align-self.
Patrones con Flexbox
css1/* Navbar */ 2nav { display: flex; justify-content: space-between; align-items: center; } 3nav ul { display: flex; gap: 1.5rem; list-style: none; } 4 5/* Cards responsivas */ 6.cards { display: flex; flex-wrap: wrap; gap: 2rem; } 7.card { flex: 1 1 300px; padding: 1.5rem; border: 1px solid #ddd; } 8 9/* Hero centrado */ 10.hero { display: flex; justify-content: center; align-items: center; min-height: 60vh; text-align: center; }
- Navbar, grilla de tarjetas, hero centrado y footer en columnas.
- Uso de
gapvs márgenes para separación.
Ejemplos de Código
3 ejemplos
Navbar responsive básica
1nav {
2 display: flex;
3 justify-content: space-between;
4 align-items: center;
5 padding: 1rem 2rem;
6 background: #111;
7 color: #fff;
8}
9nav ul { display: flex; gap: 1.5rem; list-style: none; }Grilla flexible
1.cards {
2 display: flex;
3 flex-wrap: wrap;
4 gap: 1.5rem;
5}
6.card {
7 flex: 1 1 280px;
8 padding: 1.25rem;
9 border: 1px solid #e5e7eb;
10 border-radius: 10px;
11}Footer flexible
1footer {
2 display: flex;
3 justify-content: space-around;
4 gap: 2rem;
5 padding: 2.5rem 2rem;
6 background: #1f2937;
7 color: #fff;
8}
9footer .col { flex: 1; }Recursos
4 recursos disponibles
¡Hora de Practicar!
Práctica guiada - Layout con Flexbox
Layout con Flexbox
Construir navbar, hero y grilla de tarjetas usando flex-direction, wrap y gap.
Desafío de Código
Ejercicios - Flexbox aplicado
Flexbox aplicado
Crear (1) navbar responsive, (2) galería de imágenes con wrap, (3) card layout de productos, (4) footer de 3 columnas.
Documentación Oficial
Referencia y juegos
Guía detallada de todas las propiedades Flexbox.
Reto de Lectura
Auditoría IA #1 — El layout generado
Hoy la IA trabaja para ti y tú eres el revisor. Genera el layout de la semana con tu IA favorita y audítalo con la checklist. Entregas tu informe de auditoría.
El ejercicio que harás toda tu carrera: revisar código que no escribiste antes de integrarlo.
Paso 1 — Genera (10 min). Pídele a tu IA favorita exactamente esto:
"Hazme una página con navbar responsive, una sección de 6 cards de productos en grid y un footer de 3 columnas, usando HTML y CSS con flexbox"
Paso 2 — Audita (40 min). Revisa el resultado con esta checklist y anota CADA hallazgo:
| # | Revisa | Pregunta clave |
|---|---|---|
| 1 | Semántica | ¿Usó <nav>, <main>, <footer> o es sopa de divs? |
| 2 | Accesibilidad | ¿Los enlaces son <a>? ¿Las imágenes tienen alt? |
| 3 | CSS muerto | ¿Hay reglas que puedes borrar sin que cambie nada? Pruébalo. |
| 4 | Flexbox real | ¿Entiendes cada justify-content y align-items que puso? ¿Alguno no hace nada? |
| 5 | Responsive | Angosta la ventana a 375px. ¿Se rompe algo? ¿La navbar colapsa o solo se encoge? |
| 6 | Números mágicos | ¿Hay margin: 37px o width: 83% sin explicación? ¿De dónde salieron? |
Paso 3 — Informe (entregable). Un markdown con: (a) el prompt exacto que usaste, (b) mínimo 4 hallazgos con la línea de código y por qué es un problema, (c) tu versión corregida de al menos 2 de ellos, (d) veredicto final: ¿lo integrarías a un proyecto real tal cual? ¿Por qué no?
Clase 5 de 33 en la ruta Desarrollo web