01 Aprende probando

Diseña para cualquier pantalla.

El diseño responsivo hace que una misma página se adapte al espacio disponible. Mueve el control, cambia de dispositivo y observa cuándo el contenido decide reorganizarse.

Empezar a experimentar
  • 6conceptos
  • 4laboratorios
  • 1editor en vivo

SIMULADOR DE VIEWPORT

Una página, varios tamaños

En vivo
MóvilTabletaEscritorio
ejemplo.local
Regla activa@media (max-width: 599px)

Las tarjetas usan una sola columna y la navegación se simplifica.

02 De dónde nace

La web dejó de tener un solo tamaño.

Durante años se diseñó pensando en monitores de escritorio con medidas fijas. La llegada de teléfonos, tabletas y pantallas muy distintas obligó a cambiar la pregunta: en vez de “¿para qué dispositivo diseño?”, empezamos a preguntar “¿cómo debe responder el contenido al espacio que tiene?”.

01

EL PROBLEMA INICIAL

Páginas pensadas para un monitor

Los sitios solían construirse con tablas y anchos fijos, por ejemplo 760 o 960 píxeles. Funcionaban en el monitor previsto, pero en una pantalla menor aparecía desplazamiento horizontal.

.pagina {
  width: 960px;
  margin: 0 auto;
}

El nombre llegó en 2010

Ethan Marcotte publicó Responsive Web Design en A List Apart el 25 de mayo de 2010. Reunió tres ideas que ya estaban madurando: cuadrículas fluidas, imágenes flexibles y media queries.

Consultar el artículo original ↗

03 La idea central

Responsive no significa “hacer una versión móvil”.

Significa construir reglas flexibles para que el contenido conserve su jerarquía, legibilidad y facilidad de uso mientras cambia el espacio disponible.

01

Base fluida

El contenido crece y se contrae con porcentajes, fracciones y límites razonables.

Pasa el mouse o enfocawidth: min(100% - 2rem, 72rem);
02

Contenido flexible

Imágenes, texto y componentes nunca deberían desbordar su contenedor.

Pasa el mouse o enfocaimg { max-width: 100%; height: auto; }
{ }03

Reglas condicionales

Las media queries cambian el diseño cuando el contenido realmente lo necesita.

Pasa el mouse o enfoca@media (min-width: 48rem) { … }

RECETA EN 5 PASOS

Cómo se construye de verdad

Primero permite que el navegador use el ancho real del dispositivo. Sin esta etiqueta, un teléfono puede simular una ventana de escritorio y reducir toda la página.

index.html
<meta name="viewport"
  content="width=device-width, initial-scale=1">
ResultadoEl CSS mide el ancho real de la pantalla.

COMANDOS ESENCIALES

Las herramientas que más usarás

@media (min-width: 48rem)

Media query

Activa estilos cuando se cumple una condición del viewport.

grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));

Grid flexible

Crea tantas columnas como quepan sin fijar cada breakpoint.

flex-wrap: wrap;

Flex que envuelve

Permite que los elementos bajen a otra fila si falta espacio.

font-size: clamp(1.5rem, 4vw, 3.5rem);

Escala fluida

Cambia de forma continua entre un mínimo y un máximo.

max-width: 100%; height: auto;

Imagen flexible

Evita que una imagen sea más ancha que su contenedor.

@container (min-width: 30rem)

Container query

Adapta un componente según el espacio de su contenedor.

04 Laboratorios guiados

Toca los valores. Mira qué cambia.

En cada laboratorio se modifica una parte real del CSS. Observa el resultado y luego lee la regla que lo produce.

LAB 01

Unidades: fijo vs. fluido

Compara cómo se comporta una caja medida en px, %, vw y rem.

320 px
width: 320px;

Los píxeles mantienen el mismo tamaño. Si el contenedor se hace menor, la caja puede desbordarse.

LAB 02

Tipografía con clamp()

Combina un mínimo, un valor flexible y un máximo para mantener títulos legibles.

Un título que se adapta
font-size: clamp(28px, 5vw, 68px);

Tamaño calculado: 32 px

LAB 03

Constructor de media queries

La regla todavía no se activa
A
B
C
D
E
F
.galeria {
  display: grid;
  grid-template-columns: 1fr;
}

@media (min-width: 720px) {
  .galeria {
    grid-template-columns: repeat(3, 1fr);
  }
}
LAB 04

Media query vs. container query

Una media query mira la ventana completa. Una container query mira el espacio real del componente. Reduce la columna para comprobar la diferencia.

CQ
COMPONENTE

Esta tarjeta responde a su contenedor

Se organiza en fila cuando su propia columna tiene espacio suficiente.

.zona { container-type: inline-size; }
@container (min-width: 420px) { .tarjeta { display: flex; } }

05 Playground

Escribe. Ejecuta. Cambia el tamaño.

Este editor combina tu HTML y tu CSS en una vista segura. Prueba un ejemplo o crea el tuyo desde cero.

Ejemplos:
Listo
375 px

06 Comprueba lo aprendido

Reto: piensa como el contenido.

Responde cuatro situaciones reales. Puedes intentarlo cuantas veces quieras; el progreso queda guardado en este navegador.

0/ 4

Tu avance

Empieza por la primera pregunta.

01 Una fila de tarjetas se desborda en pantallas pequeñas. ¿Qué solución es más flexible?

02 ¿Qué enfoque empieza con la versión sencilla y agrega complejidad cuando hay más espacio?

03 Un componente aparece en una barra lateral y también en el área principal. ¿Qué consulta puede responder a su propio espacio?

04 ¿Cuál es un buen motivo para crear un breakpoint?

ANTES DE ENTREGAR

Lista de revisión responsiva

Marca cada punto cuando pruebes tu propio proyecto.

0 / 6

07 Para seguir aprendiendo

Fuentes y documentación