Flexbox y Layouts con CSS
Volver a clases
UI/UX DesignPrincipiante

Flexbox y Layouts con CSS

120 min

Display, posicionamiento y maquetación moderna con Flexbox (navbars, grids de cards, footers).

Display y Positioning

  • Display en la práctica: block ocupa todo el ancho, inline solo el ancho del contenido y inline-block combina ambos para permitir dimensiones. flex habilita layouts modernos y none oculta elementos sin reservar espacio.
  • Position explicado: static es el flujo normal, relative permite desplazar sin salir del flujo, absolute sale del flujo y se posiciona respecto al ancestro con position, fixed se pega al viewport y sticky se fija al hacer scroll.
  • Casos de uso reales: absolute para badges sobre tarjetas, fixed para botones flotantes, sticky para headers que permanecen visibles al desplazarse.

Fundamentos de Flexbox

css
1.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, gap y cómo crear grillas simples.
  • Propiedades de ítems: flex, flex-basis, align-self.

Patrones con Flexbox

css
1/* 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 gap vs márgenes para separación.

Ejemplos de Código

3 ejemplos

Navbar responsive básica

css
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

css
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

css
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ácticaPrincipiante15 min🟡 IA con bitácora

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

EjercicioPrincipiante15 min🔴 Sin IA

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

DocumentaciónPrincipiante15 min

Referencia y juegos

Guía detallada de todas las propiedades Flexbox.

Reto de Lectura

Reto de LecturaPrincipiante60 min🟢 IA requerida

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:

#RevisaPregunta clave
1Semántica¿Usó <nav>, <main>, <footer> o es sopa de divs?
2Accesibilidad¿Los enlaces son <a>? ¿Las imágenes tienen alt?
3CSS muerto¿Hay reglas que puedes borrar sin que cambie nada? Pruébalo.
4Flexbox real¿Entiendes cada justify-content y align-items que puso? ¿Alguno no hace nada?
5ResponsiveAngosta la ventana a 375px. ¿Se rompe algo? ¿La navbar colapsa o solo se encoge?
6Nú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?