¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Diseño adaptable con media queries

Después de esta lección: Puedo hacer que una página se ajuste al ancho de cualquier pantalla.

Lección de 60 min2 comandosLaboratorio de web móvil: una aplicación web adaptable e instalable para construir en el navegador

Una página adaptable cambia con la pantalla

Un diseño adaptable (en inglés, responsive) es el que cambia según el ancho de la pantalla. Así una misma página se lee bien en un móvil, en una tableta y en un portátil.

Piensa en la web de horarios del metro de tu ciudad. Si en el móvil tienes que ampliar para leer cada línea, esa página no está adaptada.

Al terminar esta lección

Nota

Puedo hacer que una página se ajuste al ancho de cualquier pantalla.

Palabras clave

PalabraQué significaEjemplo
Viewportla zona de la pantalla en la que se dibuja la página
Diseño adaptableun diseño que cambia según el ancho de la pantalla
Media queryuna regla de CSS que solo vale si se cumple una condición@media (min-width: 600px)
Punto de corteel ancho en el que cambian las reglas
Móvil primeroescribir primero las reglas del móvil y añadir las de pantallas grandes
Píxel CSSla unidad de medida de la página, no de la pantalla física600px

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Sin viewport, el móvil encoge la página

Por defecto, un móvil dibuja una página como si su pantalla fuera muy ancha, y después la reduce. Por eso el texto sale diminuto.

La etiqueta viewport corrige esto. Va en el head de la página y dice al móvil que use el ancho real de su pantalla.

La etiqueta viewport, dentro del head

Código: web
<meta name="viewport" content="width=device-width, initial-scale=1">

El laboratorio tiene una app de hábitos

El laboratorio tiene una app pequeña para anotar hábitos, en la carpeta app. Se abre con el enlace de vista previa, al lado de JupyterLab.

Los dos scripts siguientes leen la app y no la cambian. Imprimen sus palabras en inglés, porque son del laboratorio. Lee la salida con calma: found es "encontrada" y MISSING es "falta".

Buscar la etiqueta viewport

Comando
docker exec jupyter python3 steps/viewport.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Una media query activa reglas desde un ancho

Una media query es una regla de CSS que solo vale si se cumple una condición. La más usada pregunta por el ancho mínimo de la pantalla.

Con móvil primero, las reglas sin condición son las del móvil. Cada media query añade reglas cuando la pantalla es más ancha. El ancho donde cambian es un punto de corte.

Dos puntos de corte, 600 y 900 píxeles

Código: web
ul { display: grid; grid-template-columns: 1fr; }

@media (min-width: 600px) {
  main { padding: 24px; }
}

@media (min-width: 900px) {
  ul { grid-template-columns: 1fr 1fr; }
}

Ejemplo resuelto: qué reglas valen en cada ancho

AnchoReglas baseDesde 600Desde 900Resultado
360 px, un móvilSíNoNoUna columna, sin margen extra
700 px, una tableta pequeñaSíSíNoUna columna, con margen
1200 px, un portátilSíSíSíDos columnas, con margen

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Listar las media queries de la app

Comando
docker exec jupyter python3 steps/breakpoints.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que, si la página se ve bien en una ventana estrecha del ordenador, ya funciona en el móvil. La ventana estrecha solo prueba el diseño. No prueba el tamaño del dedo ni una red lenta. Úsala para el diseño y prueba también en un móvil real.

Sobre este laboratorio y su código: Laboratorio de web móvil: una aplicación web adaptable e instalable para construir en el navegador

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.