Diseño adaptable

Crea páginas web que funcionen bien en teléfonos, tabletas y computadoras. Configura el área de visualización para que los navegadores móviles usen el ancho real de la pantalla, dimensiona el texto y las cajas con unidades relativas y relativas al área de visualización, y cambia las disposiciones mediante consultas de medios escritas con un enfoque primero móvil. Usa consultas de contenedor para que los componentes se adapten al espacio disponible, ofrece imágenes adecuadas para cada pantalla con srcset, sizes y <picture>, y prueba las páginas con distintos anchos, niveles de zoom, interacción táctil y preferencias de lectura.

PrincipianteUnidad 6 de 8 del curso Curso de Fundamentos de desarrollo web

Lo que aprenderás

  1. Explica qué es el diseño adaptable, haz que los navegadores móviles maqueten una página al ancho real del dispositivo y dimensiona el texto y las cajas con unidades que se ajustan.
    • Explica el diseño adaptable y configura el área de visualización
      Describe qué hace el diseño adaptable, cómo se relacionan los píxeles CSS con los píxeles del dispositivo y por qué toda página adaptable necesita la etiqueta meta del área de visualización.
    • Dimensiona el texto y las cajas con unidades relativas
      Usa porcentajes, em, rem y ch para que las cajas se ajusten a su contenedor y el texto siga la configuración de tamaño de fuente del lector.
    • Usa unidades relativas al área de visualización y tamaños fluidos
      Dimensiona elementos respecto al área de visualización con vw, vh y las unidades más recientes para áreas pequeñas, grandes y dinámicas, y establece límites con min(), max() y clamp().
  2. Escribe consultas de medios, crea estilos con un enfoque primero móvil y puntos de ruptura elegidos según el contenido, y convierte las disposiciones con flexbox y cuadrículas en disposiciones que se adaptan a la pantalla.
    • Escribe consultas de medios
      Usa tipos de medios, condiciones de ancho, operadores lógicos y otras características de medios, y coloca correctamente las consultas de medios en la cascada.
    • Diseña primero para móviles con puntos de ruptura basados en el contenido
      Escribe estilos base para pantallas pequeñas, añade consultas min-width a medida que aumenta el espacio y sitúa los puntos de ruptura donde el contenido los necesite.
    • Haz adaptables las disposiciones con flexbox y cuadrículas
      Cambia las disposiciones en los puntos de ruptura y usa patrones intrínsecos de cuadrícula y flexbox que se adapten sin consultas de medios.
  3. Declara contenedores de consulta, aplica estilos a componentes con consultas y unidades de contenedor, y elige entre consultas de medios, consultas de contenedor y disposiciones intrínsecas.
    • Configura contenedores y escribe consultas de contenedor
      Declara un contenedor de consulta con container-type, escribe reglas @container, asigna nombres a los contenedores y evita los errores habituales de configuración.
    • Define tamaños con unidades de consulta de contenedor y elige la herramienta adecuada
      Usa unidades de consulta de contenedor para tamaños que se ajusten a un contenedor y decide cuándo usar una consulta de medios, una consulta de contenedor o una disposición intrínseca.
  4. Mantén las imágenes y el contenido multimedia insertado dentro de sus contenedores, deja que el navegador elija un archivo adecuado con srcset y sizes, y cambia el recorte o el formato con el elemento picture.
    • Haz flexibles las imágenes y el contenido multimedia insertado
      Evita que las imágenes y los vídeos se desborden, conserva sus proporciones, reserva espacio antes de que se carguen y controla el recorte con object-fit.
    • Deja que el navegador elija el tamaño de imagen con srcset y sizes
      Ofrece la misma imagen en varios archivos, describe el ancho al que se muestra y predice qué archivo carga el navegador.
    • Cambia el recorte o el formato con el elemento picture
      Usa picture y source para mostrar un recorte diferente según el ancho u ofrecer formatos de imagen modernos con una alternativa.
  5. Comprueba las páginas con distintos anchos, niveles de zoom y dispositivos reales, detecta y corrige el desbordamiento, y adáptalas a la interacción táctil y a la configuración del lector.
    • Prueba distintos anchos y corrige el desbordamiento
      Usa las herramientas de diseño adaptable del navegador y dispositivos reales, comprueba la redistribución del contenido a 320 píxeles CSS y localiza las causas del desplazamiento horizontal.
    • Diseña para la interacción táctil, el zoom y las preferencias del usuario
      Dimensiona los controles para los dedos, evita las interacciones que solo funcionan al mantener el puntero sobre un elemento, permite el zoom y los cambios de orientación, y responde al movimiento reducido, al esquema de color y a la impresión.

Guía de estudio de Diseño adaptable

5 capítulos

1

Prepara una página para que se adapte a cualquier pantalla

Un buen comportamiento adaptable empieza por el espacio que el navegador considera disponible y la referencia que usa cada tamaño. Configura el área de visualización móvil, distingue los píxeles CSS de los puntos de la pantalla y después elige unidades para el texto, las cajas y las secciones de altura completa. Un contenedor que puede reducirse y un texto que respeta la configuración del lector dan una base fiable a los cambios posteriores de disposición.

1.1 Una página, muchos anchos de pantalla

El diseño adaptable permite que una página HTML se ajuste cuando cambia el espacio disponible. Un teléfono en posición vertical, una tableta girada horizontalmente y una ventana de escritorio cuyo tamaño se ha ajustado deben mostrar texto legible, controles utilizables e imágenes que quepan. Diseñas para una gama continua de anchos, incluidos los espacios entre los tamaños de dispositivos conocidos.

Ethan Marcotte introdujo el término en 2010 en torno a tres técnicas: disposiciones fluidas, imágenes flexibles y consultas de medios. Flexbox, las cuadrículas, las consultas de contenedor y el marcado de imágenes adaptables amplían ahora ese conjunto de herramientas. Cada uno resuelve una parte distinta del trabajo; una página necesita más que una sola configuración.

Cuenta los píxeles adecuados

Un píxel CSS es una unidad de maquetación, no necesariamente un punto de la pantalla. CSS define 96px como equivalentes a 1in; en una pantalla, esa relación no garantiza una pulgada física medida. Una pantalla de alta densidad usa varios píxeles del dispositivo por cada píxel CSS. La relación de píxeles del dispositivo describe esa proporción.

Un teléfono de 390 píxeles CSS de ancho con una relación de 3 tiene 1170 píxeles del dispositivo de ancho. Una consulta de ancho sigue viendo 390px. Los puntos adicionales ayudan a dibujar texto e imágenes nítidos; no dan a la disposición tres veces más espacio. Esta distinción importa cuando elijas archivos de imagen más adelante.

El área de visualización es la zona del navegador que se usa para mostrar la página, sin incluir sus propias barras de herramientas. Ajustar el tamaño de una ventana o girar un dispositivo cambia el espacio disponible. En los teléfonos, mostrar y ocultar las barras de herramientas también puede cambiar la altura visible.

Indica a los navegadores móviles el ancho previsto

Los navegadores móviles pueden maquetar una página sin configurar en un área de visualización virtual ancha, normalmente de unos 980 píxeles CSS, y después reducirla para ajustarla a la pantalla. En un teléfono de 390px, la escala es de aproximadamente 0,4. Un texto declarado a 16px parece entonces tener unos 6,4px de alto, y puede que una consulta para anchos estrechos nunca se cumpla porque el área de visualización usada para la disposición sigue siendo ancha.

Coloca esto dentro del <head> del documento:

<meta name="viewport" content="width=device-width, initial-scale=1">

width=device-width solicita el ancho del dispositivo en píxeles CSS. initial-scale=1 inicia la página con el zoom normal. Después de añadirlo, recarga la página en una vista de navegador del tamaño de un teléfono y comprueba tanto el texto como las consultas de ancho activas.

Mantén disponible el zoom. No añadas user-scalable=no ni maximum-scale=1. Los lectores con baja visión necesitan ampliar el contenido; el texto debe poder ampliarse al 200 % sin perder contenido ni funcionalidad. Algunos navegadores móviles ignoran las restricciones de zoom, pero la propia página debe permitirlo.

Comprueba también la disposición

La etiqueta del área de visualización no cambia una caja de ancho fijo. Una .page con width: 960px sigue sobrepasando un área de visualización de 390px. Sustituye los anchos rígidos por anchos fluidos con límites, haz flexible el contenido multimedia y añade cambios de disposición donde el contenido los necesite.

Para diagnosticar una página móvil diminuta, inspecciona primero el <head> en busca de la etiqueta del área de visualización. Para diagnosticar una página de tamaño normal que se desplaza horizontalmente, inspecciona las cajas que superan el ancho disponible. Estos síntomas apuntan a causas distintas.

Puntos clave

  • Las páginas adaptables se ajustan a una gama continua de anchos.
  • La disposición usa píxeles CSS; la relación de píxeles del dispositivo describe la densidad de la pantalla.
  • Coloca la etiqueta meta del área de visualización en la cabecera del documento.
  • Deja el zoom habilitado y haz flexible el contenido de ancho fijo.

1.2 Tamaños que se ajustan al texto y a los contenedores

Elige una unidad preguntándote a qué debe ajustarse el tamaño. Una columna suele ajustarse a su bloque contenedor. El relleno de un botón puede ajustarse al texto del botón. La longitud de línea de un párrafo depende de la fuente. Usar la referencia adecuada hace que los cambios funcionen conjuntamente.

UnidadReferenciaAplicación útil
%Un ancho porcentual se basa en el ancho del bloque contenedorCajas y columnas fluidas
emTamaño de fuente del padre para font-size; tamaño de fuente propio para otras propiedadesRelleno de botones e iconos
remTamaño de fuente del elemento raízTexto y espaciado común
chAncho del glifo «0» de la fuenteUn límite de longitud de línea legible
pxPíxeles de referencia CSSUn borde fino
Porcentajes y modelo de caja

Una caja con width: 50% mide 300px de ancho en un bloque contenedor de 600px y 180px en uno de 360px. El relleno y los márgenes porcentuales, incluidos los valores superior e inferior, también usan el ancho del bloque contenedor en la escritura horizontal normal. Por tanto, padding-top: 10% en un elemento padre de 600px de ancho equivale a 60px.

La altura es diferente. Una altura porcentual necesita una altura de referencia definida. Cuando la altura de un elemento padre normal depende de su contenido, height: 50% suele comportarse como auto. Deja que las cajas de texto crezcan con su contenido en lugar de controlarlas mediante alturas porcentuales.

Usa un contenedor fluido con un máximo:

.page {
  box-sizing: border-box;
  width: 100%;
  max-width: 70rem;
  margin-inline: auto;
  padding-inline: 1rem;
}

En una pantalla estrecha, la caja llena el ancho disponible, con el relleno en su interior. En una pantalla ancha se detiene en 70rem y los márgenes automáticos en el eje en línea la centran. Con una raíz de 16px, su ancho exterior máximo es 1120px. border-box incluye el relleno y los bordes en el ancho declarado; con content-box, el ancho del 100 % más el relleno se desbordaría. Un width: 70rem fijo también impediría que se redujera.

Por ejemplo, un contenedor border-box de 340px de ancho con 16px de relleno a cada lado dispone de 308px para su contenido cuando no hay borde. El ancho declarado describe el exterior de esta caja. Si cambias la misma declaración a content-box, solo el contenido mide 340px y el ancho exterior pasa a ser 372px. Inspeccionar estos anchos por separado en las herramientas de desarrollo facilita la detección del desbordamiento causado por el relleno.

Deja que se aplique la configuración del texto

Deja el tamaño de fuente de la raíz en el valor predeterminado del lector o usa un porcentaje como 100%. Con una raíz de 16px, 1.5rem equivale a 24px; con una raíz de 20px, equivale a 30px. Un valor fijo html { font-size: 16px; } impide que esa preferencia de fuente predeterminada se refleje en los tamaños relativos a la raíz.

Para font-size, em usa el tamaño de fuente del elemento padre. Por tanto, las listas anidadas configuradas cada una con 1.2em acumulan el cambio: 16px pasan a 19,2px y después a 23,04px. Usa rem cuando todos los niveles de anidamiento deban mantener el mismo tamaño.

En otras propiedades, em usa el tamaño de fuente del propio elemento. Un botón con padding: 0.5em 1em aumenta su relleno a medida que crece su texto. Esto mantiene el espaciado proporcional sin un punto de ruptura adicional.

Para los párrafos, max-width: 65ch proporciona un límite de lectura útil. La unidad mide el ancho del «0», por lo que no cuenta exactamente los caracteres en una fuente proporcional. Una recomendación habitual de lectura es usar aproximadamente entre 45 y 75 caracteres por línea; comprueba la fuente y el texto reales en el navegador.

Puntos clave

  • Los porcentajes hacen que los anchos se ajusten a su bloque contenedor.
  • Usa border-box para mantener el relleno dentro del ancho declarado.
  • rem sigue el tamaño de fuente de la raíz sin acumular cambios por anidamiento.
  • em puede mantener el espaciado de un componente proporcional a su propio texto.
  • ch ofrece un límite de longitud de línea basado en la fuente.

1.3 Tamaños fluidos con límites útiles

Las unidades relativas al área de visualización siguen el área de visualización del navegador incluso cuando un elemento está dentro de una caja más pequeña. 1vw es el 1 % del ancho del área de visualización; 1vh es el 1 % de su altura. vmin usa la dimensión menor y vmax usa la mayor. En un área de visualización de 800px de ancho, 50vw equivale a 400px. En una de 300px de alto, 70vh equivale a 210px.

Esta referencia importa. Una barra lateral puede medir solo 260px de ancho en una ventana de 1400px. Un elemento hijo con width: 50vw solicita 700px, por lo que no cabrá en esa barra lateral. Usa un porcentaje cuando el hijo deba ajustarse a su padre. Para un bloque normal de ancho completo, prefiere width: 100%: 100vw puede incluir el ancho de una barra de desplazamiento de escritorio y provocar desplazamiento horizontal.

Elige a qué altura móvil te refieres

Las barras de herramientas de los navegadores móviles pueden reducir el área visible de la página. Las unidades de altura del área de visualización distinguen tres estados:

UnidadAltura de referenciaPrincipal contrapartida
svhÁrea de visualización pequeña, con las barras visiblesTamaño estable que cabe en ese estado
lvhÁrea de visualización grande, con las barras ocultasPuede extenderse detrás de las barras visibles
dvhÁrea de visualización dinámica actualPuede cambiar de tamaño durante el desplazamiento

La unidad vh corresponde al área de visualización grande. También existen variantes de ancho como svw, lvw y dvw. Para una sección inicial alta, min-height: 100svh establece un mínimo estable y permite que crezca el contenido más largo. Una height fija deja que el contenido se desborde cuando aumenta su altura. Las unidades dinámicas pueden seguir los cambios de las barras de herramientas, pero las actualizaciones pueden producirse por pasos y mover la disposición.

Elige la referencia de altura según el comportamiento que necesites. Una sección inicial estable puede usar el área de visualización pequeña incluso después de que desaparezcan las barras; no tiene que volver a estirarse solo porque haya más espacio visible. Un panel diseñado para seguir ese espacio cambiante puede usar unidades dinámicas, aceptando el posible movimiento. En ambos casos, una altura mínima permite que el contenido adicional extienda la sección en el flujo normal.

Establece límites para un valor fluido

min() selecciona el valor menor y puede limitar un ancho: width: min(100%, 40rem) llena el elemento padre hasta alcanzar 40rem. max() selecciona el valor mayor y establece un mínimo. clamp() establece un mínimo, un valor preferido y un máximo, en ese orden.

.title {
  font-size: clamp(1rem, 0.5rem + 2vw, 2rem);
}

Con una raíz de 16px, el mínimo es 16px, el tamaño preferido es 8px más el 2 % del ancho del área de visualización y el máximo es 32px. Examina los límites:

  1. A 375px, el tamaño preferido es 15,5px, por lo que se aplica el mínimo de 16px.
  2. A 1000px, el tamaño preferido es 28px, dentro de los límites.
  3. A 1400px, el tamaño preferido es 36px, por lo que se aplica el máximo de 32px.

Las mismas funciones aceptan cálculos como min(100% - 2rem, 70rem). Mantén valores de longitud compatibles y espacios alrededor del operador de resta.

El texto dimensionado solo en vw puede resultar diminuto en pantallas estrechas y enorme en las anchas. El zoom de escritorio también estrecha el área de visualización en píxeles CSS, lo que puede anular la ampliación de ese texto. Incluye una parte relativa a la fuente y límites útiles, y después prueba la ampliación del texto: una expresión que combine rem y vw por sí sola no garantiza un aumento completo del 200 %.

Puntos clave

  • Las unidades relativas al área de visualización siguen la ventana, incluso dentro de un elemento padre estrecho.
  • Usa svh para el área de visualización pequeña y dvh para la altura visible cambiante.
  • min() establece un máximo para un valor; max() establece un mínimo.
  • clamp() establece un mínimo, un valor preferido y un máximo.
  • Prueba la tipografía fluida con zoom y con distintos anchos de ventana.
2

Adapta las disposiciones con consultas de medios

Una disposición debe funcionar mientras cambia el tamaño de la ventana, también entre sus configuraciones principales. Escribe condiciones que apliquen CSS en el momento adecuado, parte de una página estrecha y utilizable, y añade columnas cuando el contenido tenga espacio. Flexbox y las cuadrículas pueden gestionar muchos cambios automáticamente; los puntos de ruptura explícitos se ocupan de los momentos en que debe cambiar la propia disposición.

2.1 Condiciones que cambian las reglas CSS

Una consulta de medios aplica CSS cuando se cumple una condición sobre la salida, el área de visualización o las preferencias del lector. El navegador vuelve a comprobarla cuando cambian las condiciones pertinentes, por lo que ajustar el tamaño de una ventana puede cambiar los estilos sin recargar la página.

.heading { font-size: 1.25rem; }

@media (min-width: 40em) {
  .heading { font-size: 2rem; }
}

Con el valor predeterminado habitual del navegador de 16px, 40em equivale a 640px. El encabezado más grande se aplica desde ese ancho en adelante. En las consultas de medios, em y rem usan el tamaño de fuente inicial del navegador, no el tamaño establecido por el autor en <html>. Para un lector con un valor predeterminado de 20px, el mismo cambio se produce a 800px.

Interpreta las condiciones con precisión

min-width incluye su límite: 600px cumple min-width: 600px. max-width también incluye su límite. La sintaxis de intervalos hace explícita la comparación:

@media (width >= 600px) { /* wider layout */ }
@media (600px <= width < 900px) { /* middle band */ }

Si combinas max-width: 600px con min-width: 600px, ambas condiciones se cumplen a 600px. Usar 599px y 600px deja un hueco en anchos fraccionarios como 599,5px. Las consultas de ancho mínimo creciente evitan ese hueco; los intervalos complementarios como < 600px y >= 600px son otra opción.

Los tipos de medios identifican la salida: screen, print o el valor predeterminado all. @media print puede eliminar la navegación y usar texto oscuro sobre papel blanco. Las condiciones se combinan de formas útiles:

FormaSignificado
screen and (min-width: 40em)Deben cumplirse tanto el tipo de salida como el ancho
(max-width: 30em), printSe cumple con una salida estrecha o al imprimir
not printLa salida no es de impresión

only no tiene ningún efecto útil en los navegadores actuales. El ancho y la altura describen el área de visualización; orientation: portrait significa que su altura es al menos igual a su ancho. Otras características comprueban la precisión de entrada, la capacidad de mantener el puntero sobre un elemento, la resolución, el movimiento reducido y el esquema de color. Un área de visualización horizontal no indica si el lector tiene un ratón.

Como condición práctica, @media (hover: hover) and (pointer: fine) requiere un dispositivo de entrada principal capaz de mantener el puntero sobre un elemento y apuntar con precisión. Una ventana estrecha controlada con ratón puede cumplirla, mientras que un dispositivo táctil ancho puede no hacerlo. Usa la consulta para efectos opcionales del puntero; mantén la acción correspondiente disponible mediante los controles normales de la página.

Ten en cuenta la cascada

Una consulta de medios no aumenta la especificidad de un selector. En una hoja de estilo normal con reglas de igual especificidad, prevalece la última declaración que se cumple. Si la regla base .heading aparece después de la regla anterior para pantallas anchas, también prevalece a anchos grandes. Coloca primero las reglas base y después las consultas que las modifican.

También puedes añadir una condición en HTML. <link rel="stylesheet" href="print.css" media="print"> aplica sus reglas al imprimir, pero el navegador aún puede descargar el archivo con menor prioridad. El atributo media de un elemento <source> usa condiciones para elegir un origen de imagen.

Puntos clave

  • Las consultas de medios responden a la salida, las características del área de visualización y las preferencias del usuario.
  • min-width y max-width incluyen sus valores límite.
  • and exige que se cumplan todas las condiciones; una coma ofrece alternativas.
  • Las reglas de consulta siguen obedeciendo la cascada y la especificidad normales.
  • Las unidades relativas en las consultas usan el tamaño de fuente inicial del navegador.
  • Los intervalos complementarios evitan huecos en anchos fraccionarios.

2.2 Añade disposición a medida que haya espacio

El CSS con enfoque primero móvil empieza con la disposición estrecha como reglas normales fuera de cualquier consulta. Después, las consultas de ancho mínimo añaden cambios cuando el espacio lo permite. Esto se ajusta al flujo normal del documento: los bloques ya se apilan verticalmente, por lo que la página base suele necesitar poco código de disposición.

El CSS con enfoque primero escritorio empieza con reglas para pantallas anchas y usa consultas de ancho máximo para modificarlas. Ambos enfoques pueden funcionar, pero el enfoque primero móvil suele hacer que la base y cada cambio posterior sean más fáciles de seguir.

Parte de una columna
.cards {
  display: grid;
  gap: 1rem;
}

@media (min-width: 40em) {
  .cards { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 64em) {
  .cards { grid-template-columns: repeat(3, 1fr); }
}

Con un valor predeterminado de 16px, los cambios se producen a 640px y 1024px. Un área de visualización de 500px muestra una columna. A 800px, la primera consulta se cumple y da dos columnas. A 1200px, ambas consultas se cumplen; la última regla da tres columnas.

La consulta para anchos mayores no desactiva la consulta anterior. Si inviertes su orden, la regla de 40em queda al final y reduce la disposición ancha a dos columnas. Mantén las consultas de ancho mínimo creciente en orden ascendente cuando cambien la misma propiedad con la misma especificidad.

Encuentra el punto de ruptura en el contenido

Un punto de ruptura es el punto en el que una consulta cambia la disposición. Empieza con el contenido real en una ventana estrecha y después ensánchala lentamente. Observa si la navegación se ajusta de forma incómoda, si los párrafos se alargan demasiado o si las tarjetas se estiran más allá de un ancho de lectura útil. Añade un cambio donde mejore ese contenido.

No elijas un punto de ruptura solo porque un dispositivo conocido tenga ese ancho. Las pantallas varían, las ventanas de escritorio pueden tener cualquier tamaño y una fuente más grande puede hacer que la misma navegación necesite más espacio. Los puntos de ruptura en unidades relativas pueden ayudar a que la disposición responda al tamaño de texto predeterminado del lector.

Después de cada cambio, prueba ambos lados del punto de ruptura y varios anchos entre los cambios. Una disposición que solo se ve bien a 375px, 768px y 1280px aún tiene muchas posibilidades de fallar. Los anchos fluidos, el ajuste en varias líneas y las columnas automáticas de cuadrícula se ocupan de buena parte de ese espacio intermedio.

Prueba conjuntamente la navegación y la lista de tarjetas después de añadir una barra lateral a la página. La ventana se ha ensanchado, pero la columna principal puede haberse estrechado porque ahora comparte ese espacio. Una disposición de tarjetas que funcionaba justo por debajo del punto de ruptura de la página puede fallar justo por encima. Este es un buen lugar para permitir que las tarjetas se ajusten en varias líneas o encajen en columnas automáticas mientras la página usa una consulta explícita.

Mantén útiles el contenido y las descargas

Quienes usan teléfonos también necesitan el contenido de la página. Si una explicación secundaria ocupa demasiado espacio, apílala más abajo o colócala en un control nativo <details> que los lectores puedan abrir. No elimines información necesaria solo para que una captura estrecha se vea ordenada.

Empezar con una pantalla estrecha también ayuda a elegir una página predeterminada ligera. Ocultar una imagen grande con CSS no impide necesariamente su descarga; usa marcado de imágenes adaptables para ofrecer archivos adecuados. Una página legible de una sola columna con una imagen más pequeña es un buen punto de partida; después, las disposiciones más anchas añaden espacio y lo reorganizan.

Puntos clave

  • Escribe las reglas base para pantallas estrechas fuera de las consultas.
  • Añade los cambios correspondientes de min-width en orden ascendente.
  • Coloca los puntos de ruptura donde el contenido necesite un cambio de disposición.
  • Prueba anchos entre los puntos de ruptura, también con texto más grande.
  • Reorganiza el contenido útil para teléfonos y envía archivos de imagen adecuados.

2.3 Filas y columnas adaptables

Una disposición puede adaptarse mediante una consulta explícita o mediante sus propias reglas de tamaño. Usa una consulta cuando la distribución deba cambiar en un punto elegido. Usa una disposición intrínseca cuando los elementos solo necesiten ajustarse al espacio disponible.

Deja que la cuadrícula determine las columnas
.tiles {
  display: grid;
  grid-template-columns:
    repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
  gap: 1rem;
}

Con una raíz de 16px, cada columna intenta medir al menos 240px. La cuadrícula coloca tantas como sea posible, resta los espacios y después reparte el ancho restante con 1fr. En un contenedor de 1000px, cuatro columnas de 240px más tres espacios de 16px necesitarían 1008px, por lo que solo caben tres. Cada una obtiene unos 322,7px. Un contenedor de 700px obtiene dos columnas de 342px; uno de 360px obtiene una.

El min(15rem, 100%) interior importa cuando el contenedor mide menos de 240px de ancho. Permite que el mínimo pase a ser el ancho disponible. Sin él, el mínimo de 240px provocaría desbordamiento. auto-fit contrae las pistas vacías y permite que unos pocos elementos se expandan; auto-fill conserva las pistas vacías y puede dejar esos elementos más estrechos.

Deja que los elementos flex se ajusten en varias líneas
.links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.links > * { flex: 1 1 15rem; }

Cada elemento parte de una base de 15rem, puede reducirse o crecer y pasa a otra línea cuando no caben más elementos en la fila. Cada línea reparte su propio espacio restante. Por tanto, dos elementos en la última línea pueden ser más anchos que los de arriba. Una cuadrícula es más adecuada cuando los anchos de las columnas deben alinearse entre filas. La navegación también puede ajustarse en varias líneas, o una consulta puede cambiar su flex-direction a column.

Cambia toda la página cuando sea necesario

Empieza la página en flujo normal. Después añade una disposición con barra lateral:

@media (min-width: 48em) {
  .page {
    display: grid;
    grid-template-columns: 16rem minmax(0, 1fr);
    gap: 1rem;
  }
}

Con el valor predeterminado habitual de 16px, esto empieza a 768px. La primera columna es la barra lateral; la segunda ocupa el espacio restante. El mínimo de cero permite que la pista principal se reduzca; su contenido aún debe ajustarse o desplazarse de forma adecuada. Las áreas de cuadrícula con nombre pueden expresar una disposición más compleja.

Mantén el HTML en un orden de lectura lógico. La propiedad flex order y la colocación en la cuadrícula cambian dónde aparecen los elementos, pero el foco del teclado y los lectores de pantalla siguen el orden del código fuente. Prueba a recorrer los enlaces con el tabulador después de reorganizarlos.

Una tabla de datos ancha puede necesitar su estructura bidimensional. Colócala en un contenedor con desplazamiento local, overflow-x: auto, tabindex="0", role="region" y un nombre accesible como aria-label="Event schedule". Solo la región de la tabla debe desplazarse horizontalmente; el resto de la página debe seguir redistribuyéndose.

Puntos clave

  • Las disposiciones intrínsecas redistribuyen el contenido sin un punto de ruptura.
  • auto-fit y minmax() ajustan las columnas y reparten el espacio sobrante.
  • Limita el mínimo de columna al 100 % para evitar el desbordamiento en contenedores estrechos.
  • Las líneas flex reparten el espacio de forma independiente; las cuadrículas alinean las columnas entre filas.
  • Cambiar el orden visual no modifica el orden de lectura ni de tabulación del HTML.
  • Mantén las tablas anchas en una región desplazable con nombre y accesible.
3

Haz que los componentes se adapten a su contenedor

Un componente puede aparecer en una columna principal ancha o en una barra lateral estrecha de la misma página. Su propio ancho disponible puede importar más que el ancho de la ventana. Declara un contenedor de medición, cambia los elementos de su interior y usa tamaños relativos al contenedor cuando sean adecuados para el componente. Elegir la referencia correcta mantiene útil una tarjeta reutilizable dondequiera que se coloque.

3.1 Una tarjeta que se ajusta a su propio espacio

Una consulta del ancho del área de visualización da la misma respuesta para todos los componentes de una página. Esto puede ser inadecuado para una tarjeta reutilizable: la ventana puede medir 1400px de ancho mientras la barra lateral solo da 300px a la tarjeta. Una consulta de tamaño del contenedor mide el espacio disponible de un antecesor, de modo que la tarjeta puede adaptarse al espacio que ocupa realmente.

Declara un contenedor y después aplica estilos a su contenido
<div class="card-wrap">
  <article class="card">...</article>
</div>
.card-wrap { container-type: inline-size; }
.card { display: grid; gap: 1rem; }

@container (min-width: 25rem) {
  .card { grid-template-columns: 8rem minmax(0, 1fr); }
}

En la escritura horizontal, inline-size es el ancho. Declara que el contenedor puede responder a consultas sobre el tamaño en el eje en línea. Con un tamaño de fuente de raíz de 16px, 25rem equivale a 400px. Una tarjeta en un contenedor de 300px permanece apilada; otra en un contenedor de 500px coloca la imagen junto al texto. Ambas pueden estar en la misma página al mismo tiempo.

Una consulta mide un antecesor del elemento al que se aplican estilos. Si colocas container-type solo en .card y después intentas cambiar esa misma tarjeta, la consulta sigue buscando por encima de ella. Usa un contenedor como caja de medición y la tarjeta interior como caja a la que se aplican los estilos.

Selecciona el antecesor deseado

Una consulta de tamaño sin nombre usa el contenedor de tamaño antecesor adecuado más cercano. En una disposición anidada, puede ser un contenedor interior. Un nombre permite elegir un antecesor concreto:

.panel { container: sidebar / inline-size; }

@container sidebar (width >= 30rem) {
  .panel-title { font-size: 1.5rem; }
}

La propiedad abreviada establece tanto el nombre como el tipo. Si no hay un antecesor adecuado, la consulta no se cumple; los estilos base siguen aplicándose. Las condiciones pueden usar intervalos y operadores lógicos como and, or y not.

Asegúrate de que el contenedor obtenga su tamaño

La contención impide que la dimensión consultada dependa del mismo contenido cuyos estilos puede cambiar la consulta. Coloca container-type en una caja cuyo ancho proceda de la disposición del elemento padre, como un bloque, un área de cuadrícula o un elemento flex que crezca. Una caja que se reduce para ajustarse a su contenido puede contraerse cuando este deja de contribuir a su tamaño en el eje en línea.

container-type: size admite consultas tanto de ancho como de altura, pero también aplica contención al tamaño en el eje de bloque. Su altura necesita una configuración de tamaño independiente; de lo contrario, puede contraerse. Para tarjetas normales, inline-size permite que la altura siga dependiendo del contenido. El valor predeterminado normal no establece un contenedor para consultas de tamaño.

Las características de tamaño incluyen ancho, altura, tamaño en el eje en línea, tamaño en el eje de bloque, relación de aspecto y orientación, siempre que el tipo de contenedor elegido admita las dimensiones implicadas. Los navegadores principales actuales admiten consultas de tamaño. Mantén una disposición base apilada y utilizable para que la tarjeta siga funcionando si un navegador ignora la mejora.

Puntos clave

  • Coloca container-type en un elemento contenedor antecesor.
  • Las consultas inline-size son adecuadas para tarjetas cuya altura debe ajustarse al contenido.
  • Una consulta de contenedor aplica estilos a los descendientes, no a su propia caja de medición.
  • Asigna un nombre a un contenedor cuando los antecesores anidados puedan cambiar la referencia deseada.
  • Da tamaño a un contenedor de consulta mediante la disposición que lo rodea.

3.2 Elige la referencia de tamaño adecuada para cada tarea

Una página adaptable puede combinar tres enfoques: redistribución automática del contenido, condiciones del área de visualización y condiciones del componente. Decide qué información necesita la disposición antes de elegir una consulta.

NecesidadHerramienta útilMotivo
Ajustar tarjetas repetidas en una filaCuadrícula intrínseca o flexbox con ajuste en varias líneasLos elementos pueden redistribuirse sin una regla de umbral
Cambiar la disposición de la barra lateral de toda la páginaConsulta de mediosEl espacio disponible en la ventana controla la página
Cambiar una tarjeta en distintos espacios de la páginaConsulta de contenedorLa tarjeta necesita el tamaño de su contenedor
Respetar el movimiento reducido o la salida de impresiónConsulta de mediosSon condiciones del usuario o de la salida
Define tamaños dentro de un contenedor

Las unidades de consulta de contenedor describen porcentajes de un contenedor antecesor adecuado. cqw y cqh usan el ancho y la altura. cqi y cqb usan el tamaño en el eje en línea y en el eje de bloque. cqmin y cqmax usan la menor y la mayor de las dos dimensiones. En la escritura horizontal, el tamaño en el eje en línea es el ancho.

En un contenedor válido de 400px de ancho, 5cqi equivale a 20px. En uno de 600px de ancho equivale a 30px. Esto permite que un encabezado se ajuste a su propio componente, incluso cuando toda la página mantiene el mismo ancho.

Mantén límites para el texto:

.card-wrap { container-type: inline-size; }
.card h2 {
  font-size: clamp(1rem, 4cqi, 1.5rem);
}

Con una raíz de 16px, un contenedor de 300px da un valor preferido de 12px, por lo que se aplica el mínimo de 16px. A 600px, 4cqi equivale a 24px, igual al máximo. Los contenedores más anchos no pueden llevar el encabezado por encima de 24px. Prueba tanto la ampliación como el cambio de tamaño del contenedor; el texto fluido debe seguir siendo utilizable cuando los lectores usan el zoom.

Las unidades de contenedor eligen el antecesor válido más cercano para la dirección medida. Si no existe ninguno, recurren a las unidades del área de visualización pequeña. Por tanto, olvidar container-type puede hacer que el texto cambie con la ventana aunque parezca funcionar. Inspecciona los antecesores cuando parezca que un tamaño sigue un espacio incorrecto. Un nombre de contenedor en una consulta no hace por sí solo que todas las unidades de contenedor usen ese antecesor con nombre.

Combina las herramientas

Una página puede cambiar a columnas de barra lateral y contenido principal a 48em mediante una consulta de medios. Dentro del área principal, una cuadrícula automática puede colocar tantas tarjetas como permita el espacio. La consulta de contenedor de una tarjeta puede mover su imagen junto al texto solo cuando ese espacio concreto sea lo bastante ancho.

No sustituyas una consulta de movimiento reducido o de interacción al mantener el puntero sobre un elemento por una consulta de contenedor. Las dimensiones de una caja no revelan las preferencias ni el dispositivo de entrada del lector. Del mismo modo, copiar las reglas de una tarjeta en consultas del área de visualización distintas para cada espacio de la página vincula ese componente reutilizable a cada disposición que lo rodea. Deja que su espacio local determine cuándo cambia su disposición.

Puntos clave

  • Elige la redistribución intrínseca cuando no sea necesario cambiar la disposición.
  • Las consultas de medios gestionan las condiciones de toda la página y las preferencias del usuario.
  • Las consultas de contenedor gestionan el espacio disponible de un componente.
  • Las unidades de contenedor usan un antecesor adecuado para cada dirección medida.
  • Sin un contenedor válido, las unidades de contenedor recurren a las unidades del área de visualización pequeña.
4

Ofrece imágenes y contenido multimedia que se adapten a cualquier pantalla

Las imágenes necesitan tanto una caja de visualización flexible como un archivo adecuado para descargar. Conserva su forma, reserva espacio para la carga y decide cuándo es aceptable recortarlas. Después describe resoluciones, recortes y formatos alternativos para que el navegador pueda elegir entre ellos. Ajustar el marcado de imágenes a la disposición CSS mantiene la claridad de la página en pantallas de alta densidad sin descargas innecesarias.

4.1 Contenido multimedia flexible sin distorsión

Una imagen puede ser más ancha que el espacio que le da la disposición. Empieza con una regla que le permita reducirse y conservar su forma:

img, video {
  max-width: 100%;
  height: auto;
}

max-width limita el ancho mostrado al del contenedor sin obligar a una imagen pequeña a llenarlo. width: 100% estiraría un logotipo pequeño hasta ocupar todo el ancho. La altura automática conserva la relación de aspecto cuando cambia el ancho.

Reserva el espacio antes de la descarga

Conserva los atributos de dimensiones en el HTML:

<img src="coast.jpg" width="1200" height="800"
     alt="A rocky coast with a walking path">

Esas dimensiones dan una relación de aspecto de 3:2, por lo que el navegador puede reservar espacio antes de que llegue el archivo. Cuando el CSS muestra la imagen con un ancho de 360px, la altura correspondiente es de 240px. Eliminar los atributos porque la imagen es adaptable hace que se pierda esa información inicial de tamaño. El CSS aún puede mostrar la imagen más pequeña que las dimensiones de los atributos.

Para un reproductor de vídeo insertado, asigna a la caja su propia relación:

iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
}

Esto mantiene la forma 16:9 del reproductor mientras cambia su ancho. Deja que las alturas del texto dependan del contenido; una relación de aspecto fija es útil para cajas multimedia de forma conocida.

Decide si se permite el recorte

Una miniatura de tarjeta suele tener que llenar una caja uniforme. Asígnale un ancho y una relación de aspecto y después elige cómo se ajusta la imagen de origen:

.thumbnail {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: top;
}

cover llena la caja y recorta las partes que sobresalen. contain muestra la imagen completa y puede dejar franjas vacías. El valor predeterminado fill estira la imagen hasta llenar la caja, lo que puede distorsionarla. object-position elige la alineación usada al ajustar la imagen; en este ejemplo, la alineación superior mantiene visible la parte de arriba.

ObjetivoConfiguración
Mostrar un diagrama completoobject-fit: contain
Llenar una caja de miniatura y aceptar un recorteobject-fit: cover
Conservar la forma natural al reducirlaheight: auto con un límite de ancho

Para una comparación concreta, coloca una foto de 400 × 200 en una miniatura de 320 × 240. Cover la escala a 480 × 240 y después recorta un total de 160px del ancho escalado. Contain la escala a 320 × 160 y deja un total de 80px de altura sin usar. Ambos conservan las proporciones originales; la elección depende de si hay que llenar la caja o mantener visible toda la imagen.

Las imágenes con contenido deben ir en <img> con texto alternativo útil. Los fondos CSS son adecuados para la decoración; background-size: cover puede recortarlos para llenar su caja y las consultas de medios pueden cambiar el archivo de fondo.

Para las imágenes situadas por debajo de la pantalla inicial, loading="lazy" puede retrasar la descarga hasta que el lector se acerque a ellas. Deja que la imagen principal inicial se cargue de inmediato para que pueda aparecer pronto. Reducir con CSS una foto de 4000 píxeles sigue descargando esa foto; se necesita marcado de imágenes adaptables para elegir un archivo más pequeño.

Puntos clave

  • Limita el ancho del contenido multimedia y conserva su relación de aspecto.
  • Conserva los atributos width y height para reservar espacio durante la carga.
  • cover recorta; contain mantiene visible toda la imagen.
  • Usa img para el contenido y fondos CSS para la decoración.
  • Usa carga diferida para las imágenes inferiores, no para la imagen principal inicial.
  • El tamaño mostrado mediante CSS no reduce el archivo descargado.

4.2 Ofrece la resolución de imagen adecuada

Una foto puede tener varios archivos con el mismo contenido y las mismas proporciones, pero con distintas dimensiones en píxeles. La selección de resolución permite que el navegador elija un archivo según el tamaño mostrado, la densidad de pantalla y sus decisiones de carga. Así evita transferir datos innecesarios y conserva suficientes detalles.

Tamaño mostrado fijo: descriptores de densidad
<img src="logo-200.png"
     srcset="logo-200.png 1x, logo-400.png 2x"
     width="200" height="80" alt="Northwind Books">

El logotipo se muestra con un ancho de 200 píxeles CSS. El archivo de 200 píxeles es adecuado para una pantalla con relación 1; el archivo de 400 píxeles proporciona dos píxeles de origen por cada píxel CSS mostrado para una relación 2. Esta forma usa descriptores x y no necesita el atributo sizes.

Tamaño mostrado variable: descriptores de ancho
<img src="park-800.jpg"
     srcset="park-480.jpg 480w,
             park-800.jpg 800w,
             park-1600.jpg 1600w"
     sizes="(min-width: 64em) 50vw, 100vw"
     width="1600" height="1000"
     alt="Trees around a park pond">

Cada valor w debe indicar el ancho real del archivo en píxeles. No establece un ancho CSS. El CSS sigue controlando la caja, y sizes describe al navegador el ancho previsto para mostrarla.

Prevalece la primera condición de sizes que se cumple. Con un valor predeterminado del navegador de 16px, a partir de 1024px el espacio asignado mide 50vw; por debajo de ese ancho mide 100vw. La última longitud, sin condición, es la alternativa. Las longitudes pueden usar unidades relativas al área de visualización, píxeles o unidades de fuente, y cálculos como calc(100vw - 2rem), pero no porcentajes. Cuando falta sizes con descriptores de ancho, el navegador normalmente supone 100vw.

Calcula el detalle necesario

Multiplica el ancho mostrado descrito por la relación de píxeles del dispositivo. Para elegir el archivo más pequeño que sea suficiente, compara ese valor con los anchos de los archivos disponibles:

  1. Un área de visualización de 1200px con relación 1 usa el espacio de 50vw: 600 píxeles CSS. El archivo de 800w es el primero suficientemente grande.
  2. Un área de visualización de 390px con relación 3 usa 390 píxeles CSS. Necesita 1170 píxeles de origen, por lo que 1600w cumple el objetivo.
  3. La misma área estrecha con relación 2 necesita 780 píxeles de origen, cantidad que cubre 800w.

Los navegadores reales pueden reutilizar un archivo más grande almacenado en caché o preferir uno más pequeño cuando las condiciones de carga son limitadas. El marcado proporciona opciones e información de tamaño, no una orden incondicional de descargar un archivo exacto.

Los navegadores empiezan a descargar imágenes antes de disponer de la disposición CSS completa. Por eso la indicación de tamaño debe estar en el HTML. Si el CSS da a una imagen la mitad del área de visualización, pero sizes indica 100vw, el navegador puede descargar un archivo demasiado grande. Actualiza sizes cuando cambie la disposición. Conserva src como alternativa y usa un único texto alt. Los recortes diferentes necesitan <picture>, porque las opciones normales de resolución deben ser versiones intercambiables de la misma imagen.

Puntos clave

  • Usa descriptores x para un tamaño mostrado fijo y distintas densidades.
  • Usa descriptores w para los anchos de archivo y sizes para el espacio previsto.
  • Prevalece la primera condición de sizes que se cumple; los porcentajes no son longitudes válidas para el espacio asignado.
  • Estima el ancho de origen a partir del ancho mostrado y la relación de píxeles del dispositivo.
  • Mantén sizes coherente con el CSS; el navegador conserva libertad para elegir.

4.3 Elige un recorte o un formato de imagen

Reducir las dimensiones en píxeles de una foto conserva la misma composición. A veces un teléfono necesita una composición diferente: una foto panorámica de un escenario puede hacer que la persona que habla sea demasiado pequeña para reconocerla. La dirección de arte cambia el recorte o la imagen para que el sujeto importante siga siendo claro.

El elemento <picture> proporciona opciones de origen ordenadas, seguidas de un <img> obligatorio:

<picture>
  <source media="(min-width: 50em)"
          srcset="stage-wide.jpg" width="1600" height="900">
  <img src="stage-close.jpg" width="800" height="1000"
       alt="A speaker presenting on stage">
</picture>

Con un valor predeterminado de 16px, el recorte panorámico se selecciona a partir de 800px; por debajo de ese ancho, la imagen usa el recorte más cercano. El <img> sigue siendo el elemento mostrado. Proporciona la alternativa y el texto alternativo, y es el elemento al que se aplican los estilos CSS de imagen. Un <picture> sin <img> no muestra ninguna imagen.

Coloca primero las condiciones más específicas

El navegador elige el primer origen compatible cuyas condiciones se cumplan. Supón que ofreces recortes a 30em y 60em. Enumera primero el mínimo de 60em, después el de 30em y, por último, la alternativa. Si 30em aparece primero, también se cumple en una pantalla muy ancha e impide que el navegador llegue a 60em. Los intervalos que no se solapan también pueden aclarar la elección prevista.

La condición media de un origen es una instrucción de selección. En cambio, las opciones normales de srcset y sizes proporcionan información para que el navegador elija una resolución adecuada. Usa dirección de arte cuando deba cambiar la composición; usa selección de resolución cuando el contenido de la imagen siga siendo el mismo.

Ofrece formatos por orden de preferencia
<picture>
  <source type="image/avif" srcset="hall.avif">
  <source type="image/webp" srcset="hall.webp">
  <img src="hall.jpg" width="1200" height="800"
       alt="Rows of seats in a lecture hall">
</picture>

Un navegador que admita el primer formato puede usarlo; de lo contrario, prueba la siguiente opción compatible y, finalmente, la alternativa JPEG. AVIF y WebP suelen ofrecer archivos más pequeños con una calidad visual comparable. El atributo type permite que el navegador omita los formatos que no admite sin descargarlos para averiguarlo.

Cada origen también puede ofrecer varias opciones de ancho con sus propios srcset y sizes. Esto combina un recorte o formato elegido con la selección de resolución. Cuando los recortes elegidos mediante dirección de arte tienen distintas proporciones, los atributos de dimensiones de los orígenes permiten que el navegador reserve el espacio adecuado para cada uno.

Escribe el texto alternativo una sola vez, en <img>, y asegúrate de que describa todos los recortes. Si un recorte cercano elimina a una segunda persona, una descripción alternativa que nombre a dos personas ya no encaja. Para una imagen puramente decorativa, usa alt="" para que no añada contenido hablado innecesario.

Puntos clave

  • picture necesita un img para mostrar la imagen y proporcionar la alternativa y el texto alternativo.
  • Usa dirección de arte cuando cambie la composición.
  • Prevalece el primer origen compatible que cumpla las condiciones, por lo que el orden importa.
  • El atributo type de un origen puede ofrecer un formato preferido con una alternativa.
  • Todos los recortes deben coincidir con la única descripción alternativa.
5

Prueba y perfecciona páginas adaptables

Una página puede verse bien en una captura y aun así fallar con un título más largo, texto más grande o un dispositivo de entrada diferente. Prueba sus anchos y niveles de zoom, localiza las cajas que se desbordan e inspecciona las imágenes que descarga. Las áreas de activación táctil, las preferencias de movimiento, los temas de color y la impresión completan las comprobaciones que hacen utilizable el mismo contenido en distintas condiciones.

5.1 Encuentra el ancho en el que falla la página

Una página adaptable necesita pruebas en una gama de anchos, no solo en unos pocos dispositivos concretos. Abre la vista adaptable del navegador, establece un área de visualización estrecha de unos 320px y arrastra hasta llegar a una ventana ancha. Observa los encabezados, la navegación, las tarjetas y los bordes de las imágenes mientras cambias el ancho. Prueba justo por debajo, en el punto y justo por encima de cada punto de ruptura.

Las herramientas de desarrollo pueden emular las dimensiones del área de visualización, la relación de píxeles del dispositivo y la entrada táctil. Chrome y Edge ofrecen una barra de herramientas de dispositivos; Firefox y Safari ofrecen modos de diseño adaptable. La emulación es útil, pero los dispositivos reales pueden diferir en el comportamiento de las barras de herramientas, la interacción táctil, las fuentes y el rendimiento. Comprueba un teléfono y una tableta reales en ambas orientaciones, además de una ventana de escritorio cuyo tamaño hayas ajustado.

Comprueba la redistribución y el texto ampliado

El criterio AA de redistribución de las WCAG exige que el contenido normal funcione con un ancho de 320 píxeles CSS sin necesidad de desplazarse en dos direcciones. Un área de visualización de 1280px de ancho ampliada al 400 % proporciona ese ancho. Configura un área de visualización adaptable de 320px para una comprobación directa del ancho estrecho y prueba también el zoom real de escritorio para ver cómo se amplía la página.

El contenido que necesita una disposición bidimensional, como una tabla de datos, un mapa o un diagrama, puede conservarla. Mantén cualquier desplazamiento horizontal necesario dentro de su propia región. Los encabezados, las instrucciones y los párrafos que lo rodean deben seguir ajustándose al ancho de la página.

Usa contenido realista: un título largo, una URL sin puntos de corte, muchos enlaces y texto traducido más extenso. Aumenta también el tamaño de fuente predeterminado del navegador. Una caja que parecía holgada con un ejemplo corto puede desbordarse cuando crece el texto.

Localiza el desbordamiento horizontal

Una barra de desplazamiento horizontal o una franja vacía a la derecha suelen indicar que una caja supera el área de visualización. Inspecciona los elementos sospechosos y compara los bordes de sus cajas con el límite de la página. Dibuja temporalmente sus contornos:

* { outline: 1px solid red; }

Un contorno muestra las cajas sin aumentar su ancho medido. Busca anchos fijos, bloques de 100vw, imágenes sin límite de ancho, pistas de cuadrícula con mínimos anchos, márgenes negativos, texto largo y bloques de código.

Adapta la corrección a la causa:

CausaCorrección útil
Ancho de contenido rígidoUsa un ancho flexible con max-width o min()
Imagen demasiado grandeLimita el ancho y usa altura automática
URL larga sin puntos de corteUsa overflow-wrap: anywhere
Un bloque de código o una tabla necesariamente anchaAñade overflow-x: auto local
Una pista de cuadrícula con un mínimo excesivoPermite un mínimo de pista menor

No ocultes el desbordamiento horizontal de toda la página como atajo. body { overflow-x: hidden; } puede hacer desaparecer la barra de desplazamiento mientras deja contenido fuera del alcance del lector.

Para una tabla con desplazamiento local, prueba tanto la interacción como el ancho. Usa el teclado para llegar al contenedor con nombre y comprueba que su desplazamiento horizontal revele todas las columnas. Después continúa con el tabulador hasta el siguiente control. La tabla puede requerir movimiento horizontal sin obligar al párrafo anterior ni al resto de la página a ocupar la misma área de desplazamiento ancha.

Por último, inspecciona las solicitudes de imágenes en el panel Red. Establece tanto un área de visualización del tamaño de un teléfono como una relación de píxeles del dispositivo alta y realista, recarga en las condiciones de prueba previstas y comprueba la opción seleccionada y el tamaño del archivo. Una imagen visualmente pequeña puede seguir suponiendo una descarga grande si su indicación sizes es incorrecta.

Puntos clave

  • Recorre distintos anchos y prueba los límites de los puntos de ruptura.
  • Comprueba la redistribución a 320 píxeles CSS y el comportamiento real del zoom.
  • Usa dispositivos reales para comprobar comportamientos que la emulación solo aproxima.
  • Inspecciona las cajas desbordadas y corrige la causa concreta.
  • Comprueba contenido realista y los archivos que se descargan realmente para las imágenes.

5.2 Mantén las páginas utilizables con interacción táctil y la configuración del lector

El ancho es solo una parte del comportamiento adaptable. Una tableta ancha puede usar interacción táctil; una ventana de escritorio estrecha puede usar un ratón. Las páginas también deben funcionar con zoom, texto más grande, distintas orientaciones y las preferencias de movimiento y color del lector.

Facilita el acceso a los controles

Las pautas de tamaño de las áreas de activación de las WCAG 2.2 AA exigen al menos 24 × 24 píxeles CSS o suficiente separación según su regla de espaciado, con excepciones como los enlaces dentro de frases. El criterio de tamaño AAA usa 44 × 44 píxeles CSS, también con excepciones. Los enlaces de navegación más grandes y con relleno suelen ser más cómodos que una fila densa de etiquetas diminutas.

Con una raíz de 16px, un enlace con texto de 16px, line-height: 1.5 y padding: 0.75rem 1rem tiene una caja de línea de 24px más 12px por arriba y por abajo: 48px de altura. Haz que el propio enlace sea la caja con relleno que se puede pulsar.

La información esencial no debe depender de mantener el puntero sobre un elemento. Mantén las acciones visibles o accesibles mediante una pulsación y el foco del teclado. Añade efectos opcionales al mantener el puntero sobre un elemento solo cuando el dispositivo de entrada principal los admita:

@media (hover: hover) and (pointer: fine) {
  .card:hover { outline: 2px solid currentColor; }
}

pointer: coarse describe una entrada principal imprecisa, como un dedo. any-pointer y any-hover comprueban si algún dispositivo de entrada conectado tiene una capacidad; no establecen que todos los lectores la estén usando.

Permite que funcionen el texto ampliado y la rotación

Mantén el zoom habilitado y verifica que el texto pueda ampliarse al 200 % sin perder contenido ni funcionalidad. Usa tamaños relativos a la fuente y cajas de texto que crezcan. min-height permite que una caja crezca cuando crece su contenido; una altura fija puede dejar que el texto ampliado se salga hacia la siguiente sección.

Admite la orientación vertical y horizontal salvo que una de ellas sea esencial para la actividad. Los teléfonos en horizontal pueden tener muy poco espacio vertical. Una consulta de altura como @media (max-height: 30em) puede permitir que un encabezado adhesivo desaparezca al desplazarse para que no cubra el contenido.

Respeta las preferencias y la salida

Usa prefers-reduced-motion para evitar movimientos grandes a los lectores que soliciten menos. Un enfoque consiste en colocar las animaciones opcionales dentro de @media (prefers-reduced-motion: no-preference). También puedes eliminar una animación existente dentro de una consulta reduce.

Para un tema oscuro, combina colores legibles de texto y fondo dentro de @media (prefers-color-scheme: dark). Comprueba el contraste en ambos temas. color-scheme: light dark permite que los controles y las barras de desplazamiento dibujados por el navegador sigan un tema adecuado; no elige todos los colores de tu página por ti.

Una regla de movimiento reducido puede dirigirse solo al componente animado:

@media (prefers-reduced-motion: reduce) {
  .banner { animation: none; }
}

Mantén disponible el propio mensaje cuando se elimine el movimiento. Para un tema oscuro, cambia juntos el primer plano y el fondo; cambiar solo uno puede hacer que el texto se confunda con lo que lo rodea. Previsualiza también los controles de formulario, ya que los dibujados por el navegador pueden diferir de las superficies que hayas definido.

Usa @media print para ocultar la navegación y los botones y producir texto oscuro legible sobre blanco. Los enlaces impresos pueden mostrar sus destinos con a[href]::after { content: " (" attr(href) ")"; }. Prueba una vista previa de impresión para comprobar que el contenido, los fondos y los saltos de página sigan siendo legibles.

Puntos clave

  • Dimensiona el área que se puede pulsar, incluido su relleno.
  • Usa las características de entrada para comprobar la capacidad de mantener el puntero sobre un elemento y su precisión.
  • Mantén el contenido esencial disponible para quienes usan la interacción táctil y el teclado.
  • Permite el zoom, las cajas de texto que crecen y ambas orientaciones.
  • Respeta el movimiento reducido y prueba ambos temas de color.
  • Proporciona estilos de impresión legibles y destinos de enlace útiles.

Ejemplos de Diseño adaptable

5 Lecciones Interactivas

1

Crea una página flexible para un evento

13 pasos
Configura el área de visualización y elige tamaños para una página de evento que debe caber en ventanas estrechas y admitir texto ampliado.
  1. 1
    IntroducciónCrea una página flexible para un evento

    Una página de evento tiene texto diminuto en un teléfono y una caja de contenido que sobrepasa la pantalla. Empieza por distinguir el ancho de disposición del navegador, definido por el viewport, del tamaño de las cajas en su interior. Después haz que el contenedor se ajuste al espacio disponible y elige unidades de texto y altura con límites útiles, como clamp, para que nada se rompa en ventanas estrechas o con texto ampliado. Comprobarás cada cambio frente a una causa concreta en lugar de cambiar varios tamaños sin relación a la vez.

  2. 2
    ExplicaciónInterpreta el área de visualización en píxeles CSS

    Una pantalla de alta densidad no proporciona ancho adicional para la disposición CSS. Si un teléfono tiene 1080 píxeles del dispositivo de ancho con una relación de píxeles del dispositivo de 3, el ancho correspondiente es de 360 píxeles CSS. Una consulta de medios y una unidad relativa al ancho del área de visualización usan ese ancho CSS. Los puntos físicos proporcionan más detalle para dibujar texto e imágenes; no convierten una página estrecha en una disposición de escritorio.

  3. 3
    EjemploCorrige la disposición virtual ancha

    La página del evento no tiene una instrucción del área de visualización, por lo que el navegador móvil puede maquetarla en un área virtual ancha y reducir el resultado. Coloca esto en la cabecera del documento:

    <meta name="viewport" content="width=device-width, initial-scale=1">
    

    Recarga la vista previa estrecha. La página usa ahora el ancho del dispositivo en píxeles CSS y comienza a escala normal. Deja el zoom habilitado para los lectores que necesiten texto más grande.

  4. 4
    DesafíoExplica el desplazamiento horizontal que permanece

    Después del cambio del área de visualización, el texto se ve normal, pero el contenedor del evento sigue teniendo width: 900px en un área de visualización de 360px. ¿Por qué sigue desplazándose horizontalmente?

    ---reveal---

    La etiqueta cambió el área de visualización inicial que usa el navegador para la disposición, no el ancho CSS del contenedor. Una caja de 900px sigue superando los 360px. Haz que el contenedor sea fluido con un límite superior para que pueda reducirse al espacio real de la página.

  5. 5
    EjemploPermite que el contenedor se reduzca

    Sustituye el ancho fijo del contenedor por una caja de ancho completo con un límite:

    .event {
      box-sizing: border-box;
      width: 100%;
      max-width: 68rem;
      padding-inline: 1rem;
      margin-inline: auto;
    }
    

    El contenedor se ajusta a un elemento padre estrecho, pero deja de crecer en una pantalla ancha. Border-box incluye el relleno dentro del ancho declarado, mientras que los márgenes automáticos en el eje en línea centran la caja limitada.

  6. 6
    ExplicaciónElige una referencia para el texto y el espaciado

    Deja la fuente de la raíz en el valor predeterminado del lector. Una etiqueta de 1.25rem pasa a 20px con una raíz de 16px y a 25px con una raíz de 20px. Para el relleno de un botón, em puede ser más útil: padding: 0.5em 1em sigue el tamaño del texto del propio botón. Sin embargo, en la propia propiedad font-size, em sigue al elemento padre. Esa diferencia explica por qué las reglas de fuente en em anidadas pueden acumular sus cambios.

  7. 7
    ConsejoLimita el ancho del párrafo con la fuente

    La descripción del evento no debe estirarse hasta formar una línea muy larga en una pantalla ancha. Añade max-width: 62ch a su área de lectura. Una unidad ch mide el ancho del dígito «0» de la fuente, por lo que el resultado es un límite útil basado en la fuente, no una garantía de exactamente 62 caracteres por línea. Comprueba la fuente y el texto reales; las ventanas estrechas seguirán haciendo que el párrafo se ajuste antes de alcanzar ese límite.

  8. 8
    DesafíoMantén las proporciones de un botón

    La fuente de un botón aumenta de 16px a 24px. Su relleno horizontal es 0.75em. ¿Qué ocurre con el relleno de cada lado y por qué?

    ---reveal---

    Aumenta de 12px a 18px porque em en el relleno sigue el tamaño de fuente del propio botón. Esto permite que el espacio alrededor crezca con la etiqueta. Un valor de relleno en rem seguiría la fuente de la raíz y no necesariamente cambiaría con este aumento local de la fuente.

  9. 9
    ExplicaciónAjusta una sección inicial alta

    La sección inicial del evento debe llenar la pantalla de un teléfono sin encerrar el texto más largo en una caja de altura fija. Usa min-height: 100svh. El área de visualización pequeña representa el estado con las barras de herramientas del navegador visibles; min-height permite que la sección crezca más allá de ese tamaño inicial. La unidad vh sigue el área de visualización grande, mientras que dvh sigue los cambios de las barras y puede hacer que la sección cambie de tamaño durante el desplazamiento.

  10. 10
    EjemploDefine un tamaño de encabezado con límites

    Para el título del evento, prueba:

    .event h1 {
      font-size: clamp(1.5rem, 1rem + 2vw, 2.5rem);
    }
    

    Con una raíz de 16px, los límites son 24px y 40px. En un área de visualización de 600px, el valor preferido es 16px más 12px, lo que da 28px. Como 28px está dentro de los límites, el navegador lo usa. Esto produce un cambio continuo sin una consulta distinta para cada tamaño.

  11. 11
    EjemploAplica los límites en ambos extremos

    Mantén la misma expresión para el encabezado y la raíz de 16px. A 300px de ancho, el valor preferido es 16px más 6px, es decir, 22px, por lo que se aplica el mínimo de 24px. A 1600px de ancho sería 48px, por lo que se aplica el máximo de 40px. La expresión central propone un tamaño; clamp decide si esa propuesta está dentro del intervalo permitido. No escala los tres argumentos conjuntamente.

  12. 12
    DesafíoElige unidades y comprueba la ampliación

    El contenedor de la página del evento cabe en la pantalla, pero su título usa solo 6vw y apenas se amplía con el zoom de escritorio. ¿Qué debes cambiar y después probar?

    ---reveal---

    Usa una parte relativa a la fuente y límites razonables en lugar de un tamaño basado únicamente en el área de visualización, y después prueba la ampliación real del texto. El zoom estrecha el área de visualización en píxeles CSS, lo que reduce un tamaño de fuente basado solo en vw. Incluso una expresión que combine rem y vw necesita una prueba de zoom para confirmar que los lectores pueden ampliar el texto lo suficiente.

  13. 13
    RepasoComprueba la base flexible

    Comprueba tres referencias antes de añadir cambios de disposición: el área de visualización móvil usa el ancho del dispositivo, el contenedor sigue a su elemento padre y los tamaños de texto respetan una referencia de fuente. Limita los valores fluidos donde sea necesario y deja que las cajas de texto crezcan. Prueba una ventana estrecha, una ancha y texto ampliado antes de pasar a las columnas adicionales.

2

Convierte una lista de tarjetas en una disposición adaptable

14 pasos
Parte de una pila estrecha, añade puntos de ruptura útiles y compara las columnas explícitas y automáticas.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónConvierte una lista de tarjetas en una disposición adaptable
  2. 2
    ExplicaciónInterpreta una condición de ancho
  3. 3
    EjemploCombina condiciones con el significado correcto
  4. 4
    DesafíoEncuentra un hueco entre límites
  5. 5
    EjemploEscribe primero la disposición estrecha
  6. 6
    EjemploAñade dos columnas cuando quepan
  7. 7
    DesafíoDeja que prevalezca el cambio para un ancho mayor
  8. 8
    ExplicaciónDeja que la cuadrícula ajuste las columnas automáticamente
  9. 9
    EjemploCuenta las pistas y los espacios conjuntamente
  10. 10
    Idea claveElige cómo se comporta el espacio vacío
  11. 11
    DesafíoMantén utilizable la cuadrícula estrecha
  12. 12
    ConsejoConserva el orden de lectura
  13. 13
    DesafíoCombina el comportamiento de la página y de los componentes
  14. 14
    RepasoComprueba cada transición
3

Reutiliza una tarjeta en distintos espacios de la página

10 pasos
Configura un contenedor de consulta local y combina las unidades de contenedor con condiciones para toda la página.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónReutiliza una tarjeta en distintos espacios de la página
  2. 2
    EjemploCrea el antecesor de medición
  3. 3
    EjemploCambia la tarjeta dentro del contenedor
  4. 4
    DesafíoCorrige una consulta sobre el propio elemento
  5. 5
    ConsejoAsigna un nombre a la caja de medición deseada
  6. 6
    ExplicaciónHaz fluido un encabezado local
  7. 7
    DesafíoEncuentra la referencia inesperada
  8. 8
    ConexiónSepara las decisiones de página y de preferencias
  9. 9
    DesafíoElige condiciones para una tarjeta reutilizable
  10. 10
    RepasoInspecciona la caja de referencia
4

Ofrece una imagen nítida sin una descarga grande

15 pasos
Haz flexible una imagen, predice una opción de resolución y añade una elección de recorte o formato donde sea necesario.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónOfrece una imagen nítida sin una descarga grande
  2. 2
    EjemploMantén la foto dentro de su columna
  3. 3
    ExplicaciónElige qué se puede recortar
  4. 4
    DesafíoDistingue el tamaño mostrado del tamaño del archivo
  5. 5
    EjemploOfrece los anchos reales de los archivos
  6. 6
    EjemploInterpreta el espacio asignado antes de elegir un archivo
  7. 7
    ConsejoMantén sizes y CSS coherentes
  8. 8
    DesafíoElige la resolución necesaria
  9. 9
    ConexiónUsa descriptores de densidad para el logotipo fijo
  10. 10
    ExplicaciónDecide si debe cambiar el recorte
  11. 11
    EjemploColoca el recorte panorámico antes de la alternativa
  12. 12
    DesafíoCorrige el orden de los recortes
  13. 13
    ExplicaciónOfrece formatos sin cambiar el sujeto
  14. 14
    DesafíoCompleta el plan de imágenes del taller
  15. 15
    RepasoComprueba la caja y la solicitud
5

Prueba una página más allá de su vista previa ordenada

12 pasos
Localiza el desbordamiento y prueba la redistribución, las capacidades de entrada, el tamaño del texto y las preferencias del lector.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónPrueba una página más allá de su vista previa ordenada
  2. 2
    EjemploRecorre los anchos de la disposición
  3. 3
    ExplicaciónComprueba un ancho de lectura con zoom
  4. 4
    EjemploEncuentra la caja que sobrepasa el borde
  5. 5
    DesafíoMantén accesible una región ancha necesaria
  6. 6
    EjemploHaz que el propio enlace sea suficientemente grande
  7. 7
    Idea claveNo deduzcas el tipo de entrada a partir del ancho
  8. 8
    DesafíoCorrige un panel para texto ampliado
  9. 9
    ExplicaciónPrueba el movimiento, los temas y la impresión
  10. 10
    ConsejoInspecciona las descargas en las condiciones previstas
  11. 11
    DesafíoPlanifica una comprobación final de usabilidad
  12. 12
    RepasoRepite la condición que detectó el fallo

Ejercicios de Diseño adaptable

40 Preguntas de Práctica en 4 sets

Set 1: Fundamentos del área de visualización, los tamaños y la disposición10 Preguntas de Práctica

Pregunta 1 de 10

Una pantalla tiene 824 píxeles del dispositivo de ancho y una relación de píxeles del dispositivo de 2. ¿Qué ancho usa CSS para su área de visualización de disposición cuando la etiqueta solicita el ancho del dispositivo?
  1. 824 píxeles CSS
  2. 1648 píxeles CSS
  3. 412 píxeles CSS
  4. 206 píxeles CSS
Mostrar respuestaOcultar respuesta
Respuesta: C
Divide el ancho en píxeles del dispositivo por la relación: 824 dividido entre 2 da 412 píxeles CSS. Usar 824 directamente confunde los puntos físicos de la pantalla con las unidades de referencia que miden la disposición y las consultas de ancho.

Pregunta 2 de 10

Una página móvil aparece como una disposición de escritorio diminuta. Su cabecera no tiene una etiqueta meta del área de visualización y su caja principal tiene width: 880px. ¿Qué par de cambios aborda ambas causas?
  1. Añadir la etiqueta con el ancho del dispositivo; dar a la caja principal un ancho fluido.
  2. Añadir la etiqueta con el ancho del dispositivo; mantener la caja principal en 880px.
  3. Mantener el área de visualización actual; dar a la caja principal un ancho fluido.
  4. Establecer maximum-scale en 1; dar a la caja principal un ancho fluido.
Mostrar respuestaOcultar respuesta
Respuesta: A
La etiqueta del área de visualización evita que la disposición virtual ancha se reduzca para caber en el teléfono. Una caja principal fluida se ajusta después al ancho real disponible. La etiqueta por sí sola deja la caja de 880px demasiado grande, y restringir el zoom no corrige ninguna de las dos causas de tamaño.

Pregunta 3 de 10

Un panel tiene width: 60% en un bloque contenedor de 450px de ancho. El panel no tiene relleno ni borde. ¿Cuál es su ancho?
  1. 180px
  2. 450px
  3. 750px
  4. 270px
Mostrar respuestaOcultar respuesta
Respuesta: D
Un ancho porcentual toma esa proporción del bloque contenedor: el 60 % de 450px es 270px. Los 180px restantes son la parte sin usar, no el ancho del panel. Como no hay relleno ni borde, no hay que añadir ningún ancho adicional del modelo de caja.

Pregunta 4 de 10

La fuente de la raíz es de 18px. Un botón hereda de su elemento padre una fuente de 20px, establece font-size: 1.25em y tiene padding-inline: 0.8em. ¿Cuál es su relleno horizontal en cada lado?
  1. 16px
  2. 20px
  3. 18px
  4. 14,4px
Mostrar respuestaOcultar respuesta
Respuesta: B
Primero la fuente del botón pasa a 25px porque em en font-size usa la del elemento padre: 20 por 1,25. Después, em en el relleno usa la fuente del propio botón, lo que da 25 por 0,8 = 20px por lado. Usar 20px directamente como referencia del relleno pasa por alto el cambio de tamaño de fuente del botón.

Pregunta 5 de 10

Una sección principal destacada debe tener al menos la altura del área de visualización móvil pequeña y crecer si su texto necesita más altura. ¿Qué declaración es adecuada?
  1. height: 100svh
  2. min-height: 100svh
  3. min-height: 100lvh
  4. height: 100dvh
Mostrar respuestaOcultar respuesta
Respuesta: B
La unidad del área de visualización pequeña representa el estado con las barras de herramientas móviles visibles, y min-height permite añadir altura para el contenido. Una altura fija de 100svh usa la referencia correcta del área de visualización, pero no puede hacer crecer la caja para contener texto más largo.

Pregunta 6 de 10

La fuente de la raíz es de 18px y el área de visualización mide 900px de ancho. ¿Qué tamaño de fuente resulta de clamp(1rem, 1rem + 1vw, 1.4rem)?
  1. 25,2px
  2. 27px
  3. 18px
  4. 32,4px
Mostrar respuestaOcultar respuesta
Respuesta: A
El valor preferido es 18px más 9px, es decir, 27px. El máximo es 1,4 por 18px, que equivale a 25,2px, por lo que se aplica el máximo. Responder 27px supone calcular la expresión central, pero olvidar aplicar el límite superior.

Pregunta 7 de 10

Con un área de visualización de exactamente 760px de ancho, ¿se cumple (min-width: 760px)?
  1. No, porque el ancho debe ser mayor que 760px.
  2. Solo si también hay una condición max-width.
  3. Solo si la hoja de estilo establece el tamaño de la raíz en píxeles.
  4. Sí, porque se incluye su límite mínimo.
Mostrar respuestaOcultar respuesta
Respuesta: D
Una condición min-width incluye el umbral indicado, por lo que se cumple tanto a 760px como por encima de ese ancho. Tratar el límite como estrictamente mayor confunde min-width con una comparación de mayor que, como width > 760px.

Pregunta 8 de 10

Un navegador tiene un tamaño de fuente inicial de 20px. La hoja de estilo establece html { font-size: 12px; }. ¿A qué ancho del área de visualización empieza a cumplirse (min-width: 36em)?
  1. 432px
  2. 576px
  3. 720px
  4. 864px
Mostrar respuestaOcultar respuesta
Respuesta: C
Las unidades em de las consultas de medios usan el tamaño de fuente inicial del navegador, por lo que el umbral es 36 por 20px = 720px. Multiplicar por la raíz de 12px establecida por el autor da 432px, pero una declaración font-size en HTML no establece la referencia de unidad de esta consulta.

Pregunta 9 de 10

Una cuadrícula base tiene una columna. Una consulta de 62em establece tres columnas y, después, una consulta de 42em establece dos. Ambas usan .items con igual especificidad en la misma capa. ¿Qué aparece a 70em?
  1. Tres columnas, porque el umbral mayor tiene mayor especificidad.
  2. Una columna, porque las consultas de ancho mínimo solapadas se anulan.
  3. Tres columnas, porque el navegador ordena las consultas por su umbral.
  4. Dos columnas, porque ambas consultas se cumplen y prevalece la última regla.
Mostrar respuestaOcultar respuesta
Respuesta: D
A 70em, ambas condiciones de ancho mínimo son verdaderas. Sus selectores tienen la misma especificidad, por lo que prevalece la declaración posterior de dos columnas. Un umbral mayor no hace más específico su selector; coloca los cambios de ancho mínimo creciente en orden ascendente cuando compitan.

Pregunta 10 de 10

Cuatro tarjetas flexibles se ajustan en una fila completa de tres y una última fila de una. Cada una tiene flex: 1 1 14rem. ¿Por qué puede ser más ancha la última tarjeta?
  1. La última tarjeta hereda un tamaño de fuente de raíz mayor.
  2. El ajuste flex conserva columnas vacías en la última línea.
  3. Cada línea flex distribuye su propio ancho restante.
  4. La última tarjeta ignora el ancho declarado del contenedor.
Mostrar respuestaOcultar respuesta
Respuesta: C
Flexbox reparte el ancho sobrante por separado en cada línea. Una sola tarjeta que puede crecer ocupa el espacio disponible de la última línea, mientras que tres tarjetas comparten la línea anterior. El ajuste flex no conserva pistas de cuadrícula vacías; usa una cuadrícula cuando importe alinear las columnas entre filas.
Set 2: Puntos de ruptura, contenedores y controles utilizables10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Un área de visualización puede medir 679,5px de ancho al usar el zoom. ¿Qué conjunto de límites asigna cada ancho a exactamente una de dos disposiciones basadas en el ancho?
  1. Usar (max-width: 679px) y (min-width: 680px).
  2. Usar (width < 680px) y (width >= 680px).
  3. Usar (max-width: 680px) y (min-width: 680px).
  4. Usar (width <= 680px) y (width > 681px).
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Una fila de navegación se ajusta de forma incómoda a ciertos anchos. ¿Qué debe determinar dónde cambia su disposición?
  1. El ancho de teléfono más habitual en una lista de dispositivos predefinidos.
  2. El ancho al que terminan de descargarse todas las imágenes de la página.
  3. La cantidad de píxeles físicos indicada en las especificaciones de la pantalla.
  4. El ancho al que los enlaces reales necesitan una disposición diferente.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Una cuadrícula usa repeat(auto-fit, minmax(14rem, 1fr)) con un espacio de 1rem. La raíz es de 16px, hay muchos elementos y el ancho del contenido es de 920px. ¿Cuántas columnas caben?
  1. Dos columnas
  2. Tres columnas
  3. Cuatro columnas
  4. Cinco columnas
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Una cuadrícula de tarjetas puede colocarse en una barra lateral de 190px o en un área principal de 1000px. Usa repeat(auto-fit, minmax(16rem, 1fr)). Con una raíz de 16px, desborda la barra lateral y dos tarjetas del área principal deberían estirarse a lo largo de su fila. ¿Qué regla de pistas satisface ambas necesidades?
  1. repeat(auto-fit, minmax(min(16rem, 100%), 1fr))
  2. repeat(auto-fill, minmax(16rem, 1fr))
  3. repeat(auto-fit, minmax(16rem, 16rem))
  4. repeat(auto-fill, minmax(min(16rem, 100%), 1fr))
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

¿Qué declaración en el contenedor permite consultas de ancho del contenedor y deja que la altura dependa del contenido en la escritura horizontal?
  1. container-type: normal
  2. container-type: size
  3. container-type: inline-size
  4. container-name: inline-size
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Una tarjeta tiene container-type: inline-size. Dentro de @container (width >= 24rem), .card cambia a dos columnas, pero el cambio nunca ocurre. No hay ningún contenedor antecesor válido y la tarjeta está en un espacio flex que se reduce. ¿Qué corrección hace que la consulta funcione de forma fiable?
  1. Mantener el tipo en la tarjeta y añadir un nombre de contenedor a la consulta.
  2. Colocar el tipo en la tarjeta y cambiar la consulta a max-width.
  3. Colocar el tipo en un contenedor que crezca y consultar la tarjeta interior.
  4. Colocar el tipo en un contenedor en línea cuyo ancho dependa solo de su contenido.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Un encabezado usa 5cqi dentro de un contenedor válido de 460px de ancho en escritura horizontal. El área de visualización mide 1380px de ancho. ¿Cuál es su tamaño de fuente calculado antes de aplicar otros límites?
  1. 23px
  2. 69px
  3. 46px
  4. 13,8px
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Una imagen de 1500 × 1000 tiene atributos de dimensiones HTML correspondientes y el CSS max-width: 100%; height: auto. Su contenedor mide 450px de ancho. ¿Qué dimensiones mostradas conservan sus proporciones?
  1. 450 × 1000 píxeles CSS
  2. 450 × 300 píxeles CSS
  3. 1500 × 1000 píxeles CSS
  4. 450 × 450 píxeles CSS
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

A 320px, una página contiene un párrafo legible con una URL larga y una tabla de resultados realmente bidimensional. Tanto la URL como la tabla ensanchan toda la página. ¿Qué corrección conserva el acceso a ambas?
  1. Ocultar el desbordamiento horizontal de la página y mantener los anchos actuales de ambas cajas.
  2. Dar al párrafo y a la tabla anchos fijos de 320px y ocultar su desbordamiento.
  3. Colocar toda la página en una región de desplazamiento horizontal y conservar su disposición ancha.
  4. Permitir que la URL se divida y colocar la tabla en un contenedor desplazable con nombre y accesible por teclado.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Una tableta grande usa principalmente interacción táctil e indica hover: none y pointer: coarse. ¿Cómo deben ofrecerse los detalles esenciales de una tarjeta?
  1. Mostrarlos solo al mantener el puntero encima porque el área de visualización de la tableta es ancha.
  2. Mostrarlos solo cuando la tableta adopte una orientación horizontal.
  3. Mantenerlos visibles o accesibles mediante una pulsación y el foco del teclado.
  4. Mantenerlos ocultos hasta que se cumpla una consulta any-pointer: fine.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 3: Archivos de imagen, recortes y cajas de visualización10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Un diagrama debe caber en una miniatura rectangular fija sin perder ninguna parte de su contenido. ¿Qué valor de object-fit es adecuado?
  1. contain
  2. cover
  3. fill
  4. none
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Las imágenes de una página se ven pequeñas en los teléfonos, pero siguen descargando archivos enormes. Ya tienen max-width: 100%; height: auto. ¿Qué cambio adicional aborda el tamaño de la descarga?
  1. Reducir el max-width CSS del 100 % al 80 %.
  2. Eliminar los atributos HTML width y height.
  3. Ofrecer archivos más pequeños mediante marcado de imágenes adaptables.
  4. Establecer object-fit en contain para todas las imágenes.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Una imagen se muestra con un ancho de 340 píxeles CSS en una pantalla con relación 2. Las opciones son 400w, 700w y 1400w. Supón que el navegador selecciona la opción más pequeña que cumple el objetivo de densidad, sin ajustes por caché ni red. ¿Qué ancho de archivo se selecciona?
  1. 400 píxeles
  2. 680 píxeles
  3. 1400 píxeles
  4. 700 píxeles
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

El valor predeterminado del navegador es 16px. Una imagen tiene sizes="(min-width: 54em) 40vw, 100vw" y opciones de 600w, 1000w y 1800w. Con un área de visualización de 1000px y relación 2, supón que se elige la opción más pequeña que cumple el objetivo de densidad. ¿Qué ancho de archivo resulta?
  1. 600 píxeles
  2. 1000 píxeles
  3. 1800 píxeles
  4. 800 píxeles
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

El CSS da a una foto un espacio de 48vw, pero su marcado con descriptores de ancho indica sizes="100vw". ¿Cuál es el problema de carga probable?
  1. El navegador debe mostrar la foto a 100vw pese al CSS.
  2. El navegador debe rechazar todas las opciones con descriptores de ancho.
  3. El navegador puede elegir una opción innecesariamente grande.
  4. El navegador puede recortar la foto a la mitad de su composición.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

El valor predeterminado es 16px. Una imagen usa sizes="(min-width: 38em) 100vw, (min-width: 66em) 45vw, 100vw". A 1152px y con relación 2, las opciones son 640w, 1280w y 2560w. Según la regla de selección de la opción más pequeña que sea suficiente, ¿qué ocurre?
  1. Prevalece la primera condición y se selecciona la opción de 2560w.
  2. Prevalece el umbral mayor que se cumple y se selecciona la opción de 1280w.
  3. Prevalece la primera condición y se selecciona la opción de 1280w.
  4. Prevalece la alternativa final y se selecciona la opción de 2560w.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Dentro de un elemento picture, ¿dónde debe escribirse el texto alternativo?
  1. En cada elemento source.
  2. En el propio elemento picture.
  3. Solo en el primer source que se cumpla.
  4. En el elemento img obligatorio.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

El valor predeterminado del navegador es 16px. Un picture ofrece primero un source con ancho mínimo de 34em, opciones de 600w/1200w y sizes="50vw"; después, un source de 68em con opciones de 1600w/2400w y sizes="100vw"; y luego img. Se admiten ambos formatos. A 1152px y con relación 2, ¿qué origen y archivo resultan al elegir la opción más pequeña que sea suficiente?
  1. El segundo source y su archivo de 2400w.
  2. El primer source y su archivo de 1200w.
  3. El primer source y su archivo de 600w.
  4. El segundo source y su archivo de 1600w.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Un picture ofrece AVIF, después WebP y luego un img JPEG. No hay condiciones de medios. Un navegador admite WebP y JPEG, pero no AVIF. ¿Qué selecciona?
  1. El src del img JPEG.
  2. El source WebP.
  3. El source AVIF.
  4. WebP y JPEG.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Después de ensanchar una ventana de prueba, una imagen adaptable grande queda en caché. Al estrechar la ventana sigue apareciendo ese archivo en uso. ¿Cuál es la conclusión razonable?
  1. El navegador debe de haber ignorado todas las condiciones de sizes.
  2. Una imagen con descriptores de ancho no puede adaptarse al cambiar el tamaño de la ventana.
  3. El ancho CSS de la imagen debe seguir siendo igual al área de visualización más ancha.
  4. Puede reutilizarse una opción mayor en caché; vuelve a probar controlando la caché.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Set 4: Diagnostica páginas adaptables en distintas condiciones10 Preguntas de Práctica

Guarda esta unidad para ver todas las respuestas y practicar cada set.

Pregunta 1 de 10

Un contenedor content-box tiene width: 100% dentro de un elemento padre de 370px, con 20px de relleno a izquierda y derecha y sin borde. ¿Qué cambio hace que el contenedor se ajuste al padre conservando ese relleno?
  1. Mantener el cálculo content-box porque su ancho total ya es de 370px.
  2. Usar el cálculo border-box para que el ancho total del contenedor sea de 410px.
  3. Mantener el cálculo content-box y añadir márgenes automáticos en línea para eliminar el desbordamiento.
  4. Usar el cálculo border-box para que el ancho total del contenedor sea de 370px.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Una barra lateral mide 240px de ancho dentro de un área de visualización de 1440px. Su panel de texto usa width: 30vw; height: 8rem. Al ampliar el texto, este se superpone al siguiente panel. ¿Qué corrección aborda ambos fallos visibles?
  1. Mantener el ancho relativo al área de visualización y sustituir height por min-height.
  2. Usar un ancho relativo al elemento padre y mantener la altura fija de 8rem.
  3. Usar un ancho relativo al elemento padre y dejar que la altura del panel crezca con el contenido.
  4. Usar un ancho menor relativo al área de visualización y ocultar todo el desbordamiento del panel.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Estas reglas están en una misma capa y tienen igual especificidad. ¿Qué tamaño de fuente se aplica en un área de visualización de 900px?

@media (min-width: 700px) { .title { font-size: 2rem; } }
.title { font-size: 1.2rem; }
  1. 1,2rem
  2. 2rem
  3. 3,2rem
  4. El tamaño de fuente inicial del navegador.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

El valor predeterminado del navegador y la raíz son de 16px. Con un área de visualización de 928px, un contenedor de página mide 540px de ancho. Una consulta de 52em le da una barra lateral de 18rem, un espacio de 1rem y una columna principal minmax(0, 1fr). La cuadrícula principal usa repeat(auto-fit, minmax(16rem, 1fr)), y una URL de una tarjeta mide 620px sin dividirse, con overflow-wrap: normal. ¿Qué dos cambios permiten que el contenido principal quepa sin modificar la barra lateral?
  1. Mover el punto de ruptura de la barra lateral a un ancho mayor y mantener las reglas rígidas de pista y URL.
  2. Permitir que el mínimo de la pista se reduzca y que el texto de la URL se divida.
  3. Ocultar el desbordamiento del body y mantener las reglas rígidas de pista y URL.
  4. Permitir que el mínimo de la pista se reduzca, pero mantener la URL sin posibilidad de división.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

La raíz es de 16px. Un contenedor de 520px llamado panel contiene un contenedor inline-size de 280px, que contiene una tarjeta. Ambos antecesores son válidos. Una consulta sin nombre de 26rem aplica estilos a la tarjeta. ¿Qué ocurre y cómo puede usar deliberadamente el ancho exterior?
  1. Ya se cumple; las consultas sin nombre siempre usan el antecesor más ancho.
  2. Sigue sin cumplirse; asignar el nombre panel al contenedor interior y mantener sus 280px.
  3. Ya se cumple; 26rem se calcula a partir del ancho de 280px de la tarjeta.
  4. Sigue sin cumplirse; nombrar la consulta panel para que mida el antecesor de 520px.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Una ficha de producto reutilizable aparece en ambas columnas de la página. Debe cambiar la posición de la imagen según su propio espacio, mientras que una animación grande debe respetar la preferencia de movimiento reducido. ¿Qué diseño asigna cada decisión a la condición adecuada?
  1. Usar una consulta de ancho del área de visualización para la posición y una consulta de contenedor para el movimiento.
  2. Usar una consulta de ancho del área de visualización para la posición y el movimiento reducido.
  3. Usar una consulta de tamaño del contenedor para la posición y una consulta de medios de movimiento para la animación.
  4. Usar una consulta de ancho del contenedor para la posición y el movimiento reducido.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Una foto llena un contenedor cuyo bloque contenedor abarca un área de visualización de 1440px. El contenedor tiene width: 100%; max-width: 48rem, sin relleno, y la raíz es de 16px. La indicación de la imagen es sizes="50vw"; la relación es 2 y las opciones son 800w, 1500w y 2000w. Al elegir la opción más pequeña que sea suficiente, ¿qué corrección y elección de archivo corresponden al espacio real?
  1. Mantener la indicación de 720px; el espacio real solo necesita el archivo de 1500w.
  2. Usar una indicación de 768px a este ancho; el objetivo necesita el archivo de 2000w.
  3. Usar una indicación de 768px a este ancho; el objetivo necesita el archivo de 1500w.
  4. Usar una indicación de 1440px a este ancho; el objetivo necesita el archivo de 2000w.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un recorte panorámico muestra a dos ciclistas, pero el recorte para teléfonos solo muestra a uno. El img tiene el texto alt «Dos ciclistas cruzan un puente». ¿Qué debe cambiarse?
  1. Hacer que los recortes y la descripción alt compartida coincidan en cuanto al sujeto visible.
  2. Dar al source para teléfonos su propio alt y dejar sin cambios la descripción del img.
  3. Mover el texto alt existente del img al elemento picture.
  4. Eliminar el img obligatorio y dejar que cada source muestre su propio texto alt.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Un área de visualización de disposición de 1440px se amplía con el zoom al 300 %. ¿Cuál es su ancho resultante aproximado en píxeles CSS?
  1. 4320 píxeles CSS
  2. 1140 píxeles CSS
  3. 480 píxeles CSS
  4. 720 píxeles CSS
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

En una pantalla táctil horizontal de poca altura, un encabezado adhesivo cubre gran parte de la página y los detalles esenciales del menú solo aparecen al mantener el puntero encima. Un lector también ha solicitado movimiento reducido. ¿Qué plan aborda las tres condiciones?
  1. Usar una condición de ancho estrecho para reducir el encabezado, añadir efectos al mantener el puntero encima y detener el movimiento.
  2. Usar condiciones de altura, entrada y movimiento para sus respectivas adaptaciones.
  3. Usar una consulta de contenedor para reducir el encabezado y deducir la capacidad del puntero y la preferencia de movimiento.
  4. Usar condiciones de altura y de interacción con el puntero y habilitar la animación siempre que el área de visualización sea ancha.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

¿Te atascas con una pregunta tuya? Ayuda con Tareas

Términos Clave

74 Términos Clave, cada uno con su definición

Á

Área de activación táctil
Un área de activación táctil es la zona de un control que se puede pulsar, incluido su relleno activo, y que necesita suficiente tamaño o separación para poder usarse.
Añadir relleno al propio enlace crea un área de activación mayor que añadir espacio no pulsable alrededor de su texto.
Área de visualización
El área de visualización es la zona del navegador en la que se muestra la página, sin incluir las barras de herramientas ni los controles que la rodean.
Girar un teléfono cambia las dimensiones del área de visualización y puede activar reglas de disposición diferentes.

A

Ajuste de elementos flex en varias líneas
El ajuste de elementos flex en varias líneas permite que un contenedor flex coloque elementos en líneas adicionales cuando sus tamaños y espacios ya no caben en la línea actual.
Los enlaces de navegación con flex-wrap: wrap pueden formar una segunda fila en lugar de sobrepasar la página.
Ajuste del objeto
El ajuste del objeto controla cómo se adapta el contenido de una imagen a una caja de imagen dimensionada, permitiendo el recorte proporcional, las franjas vacías o el estiramiento.
object-fit: contain conserva todas las partes de un diagrama dentro de una caja de miniatura uniforme.
Ampliación del texto
La ampliación del texto aumenta el tamaño del texto legible y conserva el contenido y los controles; las WCAG exigen permitir una ampliación de hasta el 200 % sin pérdidas.
Un panel cuya altura puede crecer mantiene visible toda su explicación cuando un lector duplica el tamaño del texto.
Ancho porcentual
Un ancho porcentual asigna a un elemento una proporción del ancho de su bloque contenedor, lo que permite que el elemento siga los cambios del espacio disponible.
Una caja configurada con 50% mide 240px de ancho cuando su bloque contenedor proporciona 480px de ancho.
Atributo sizes
El atributo sizes describe el ancho previsto del espacio de visualización de una imagen según condiciones de medios ordenadas cuando srcset usa descriptores de ancho.
sizes="(min-width: 60em) 50vw, 100vw" describe un espacio de la mitad de la ventana en áreas de visualización más anchas.
Atributo srcset
El atributo srcset proporciona opciones de imagen con descriptores de ancho o densidad, dando al navegador alternativas a un único archivo de origen.
Una foto ofrece opciones de 480w, 800w y 1600w que muestran todas la misma composición.

C

Cálculo del tamaño con border-box
El cálculo del tamaño con border-box incluye el relleno y los bordes dentro del ancho y la altura declarados de un elemento, dejando menos espacio para su contenido.
Un contenedor de página de ancho completo usa box-sizing: border-box para que su relleno lateral no cause desbordamiento.
Capacidad de mantener el puntero sobre un elemento
La capacidad de mantener el puntero sobre un elemento describe si el dispositivo de señalización principal puede permanecer cómodamente sobre él sin activarlo.
Los detalles esenciales permanecen visibles en dispositivos táctiles, mientras que los estilos opcionales al mantener el puntero encima se aplican dentro de una consulta de capacidad.
Característica de orientación
La característica de orientación compara el ancho y la altura del área de visualización; portrait incluye un área cuadrada y landscape significa que el ancho es mayor.
Una consulta de orientación horizontal puede cumplirse tanto en una ventana ancha de escritorio como en un teléfono sostenido horizontalmente.
Carga diferida
La carga diferida retrasa la descarga de una imagen hasta que se acerca al área visible, lo que reduce las descargas iniciales del contenido situado más abajo en la página.
Una imagen de galería situada por debajo de la pantalla inicial puede usar loading="lazy", mientras que la foto principal inicial se carga pronto.
Cascada
La cascada es el proceso que resuelve las declaraciones CSS que compiten entre sí; las reglas condicionales también participan cuando se cumplen sus condiciones.
Con reglas de igual especificidad que se cumplen en la misma capa, prevalece la última declaración font-size.
ch
Una unidad ch es una longitud igual al ancho de avance del dígito «0» en la fuente actual, usada a menudo para establecer el límite de longitud de línea de un párrafo.
Un artículo limitado a 65ch sigue siendo legible en una ventana ancha sin que ello indique una cantidad exacta de caracteres.
Condición min-width
Una condición min-width se cumple cuando el área de visualización tiene al menos el ancho del umbral indicado, incluido el propio valor del umbral.
La condición (min-width: 620px) es verdadera a 620px y sigue siéndolo a anchos mayores del área de visualización.
Consulta de medios
Una consulta de medios es una condición que controla cuándo se aplica CSS según las características del área de visualización, el tipo de salida, las capacidades de entrada o las preferencias.
Una consulta min-width añade una segunda columna de contenido cuando hay suficiente espacio disponible en la ventana.
Consulta de tamaño del contenedor
Una consulta de tamaño del contenedor aplica estilos a los descendientes cuando un contenedor antecesor adecuado cumple una condición sobre sus dimensiones.
Dos tarjetas de una misma página pueden usar disposiciones diferentes porque sus contenedores tienen distintos anchos.
Contención de tamaño
La contención de tamaño impide que el contenido determine el tamaño de un contenedor en las dimensiones sujetas a contención, evitando dependencias circulares de tamaño.
Una caja con container-type: size necesita una altura independiente porque su texto deja de proporcionársela.
Contenedor de consulta
Un contenedor de consulta es un antecesor declarado como válido para las características de tamaño que una regla de contenedor necesita medir para sus descendientes.
Un contenedor con container-type: inline-size puede proporcionar información de ancho a una tarjeta de su interior.
cqb
Una unidad cqb es el uno por ciento del tamaño en el eje de bloque de un contenedor antecesor válido, equivalente a la altura en la escritura horizontal.
Una unidad relativa al tamaño en el eje de bloque necesita un contenedor válido en esa dirección, no solo un contenedor inline-size.
cqi
Una unidad cqi es el uno por ciento del tamaño en el eje en línea del contenedor antecesor válido más cercano, equivalente a su ancho en la escritura horizontal.
Dentro de un contenedor válido de 500px de ancho, 4cqi da un tamaño de fuente preferido de 20px.
cqmin y cqmax
Las unidades cqmin y cqmax usan, respectivamente, el uno por ciento de la menor y la mayor de las dimensiones válidas del contenedor para establecer tamaños proporcionales.
Una longitud cqmin sigue la dimensión de referencia menor cuando las dos dimensiones difieren.
CSS con enfoque primero escritorio
El CSS con enfoque primero escritorio comienza con estilos base para pantallas anchas y usa consultas de ancho máximo para cambiarlos o modificarlos a medida que se estrecha el área de visualización.
Una fila diseñada primero para escritorio cambia a una pila vertical dentro de una consulta max-width para ventanas más pequeñas.
CSS con enfoque primero móvil
El CSS con enfoque primero móvil usa reglas base normales para disposiciones estrechas y añade distribuciones más anchas mediante condiciones de ancho mínimo a medida que aumenta el espacio.
Una lista de tarjetas empieza con una columna y gana columnas adicionales mediante consultas min-width crecientes.

D

Desbordamiento horizontal
El desbordamiento horizontal ocurre cuando el contenido sobrepasa el ancho disponible de su caja, lo que puede crear desplazamiento horizontal o contenido oculto.
Un panel fijo de 700px desborda una página de 360px incluso cuando está presente la etiqueta meta del área de visualización.
Descriptor de ancho
Un descriptor de ancho indica el ancho real en píxeles de origen de una opción de imagen con el sufijo w; no establece el ancho mostrado en CSS.
El descriptor 900w solo es correcto cuando el archivo de la opción proporcionada mide realmente 900 píxeles de ancho.
Descriptor de densidad
Un descriptor de densidad indica la escala de densidad de píxeles de una opción mediante el sufijo x, normalmente para una imagen con un tamaño de visualización CSS fijo.
Un logotipo mostrado con 180px de ancho puede ofrecer una opción de 360 píxeles con un descriptor de densidad 2x.
Desplazamiento del diseño
Un desplazamiento del diseño es un movimiento visible del contenido de la página cuando cambia su posición inicial, por ejemplo, al cargarse una imagen sin espacio reservado.
Los atributos width y height de una imagen permiten que el navegador reserve espacio según su relación de aspecto y reduzca los saltos del texto durante la carga.
Dirección de arte
La dirección de arte selecciona una composición o un recorte de imagen diferente para una condición de visualización, de modo que el sujeto importante siga siendo claro al tamaño elegido.
Un teléfono recibe un recorte cercano de un artista mientras que una ventana ancha muestra al artista y el escenario.
Diseño web adaptable
El diseño web adaptable ajusta la disposición, el texto y las imágenes de una página al espacio disponible en distintas ventanas y dispositivos.
Una página de cursos apila sus tarjetas en un teléfono estrecho y las coloca en columnas cuando la ventana tiene espacio.
Disposición intrínseca
Una disposición intrínseca se adapta mediante sus propias reglas de tamaño y ajuste en varias líneas, lo que permite que el contenido quepa en el espacio disponible sin puntos de ruptura explícitos.
Una fila de tarjetas que se ajusta en varias líneas gana otra línea cuando se estrecha el contenedor, sin ninguna consulta de medios.
dvh
Una unidad dvh es el uno por ciento de la altura dinámica del área de visualización, que sigue los cambios del área visible actual al moverse las barras de herramientas del navegador.
Un panel que usa 100dvh puede cambiar de tamaño mientras aparece o desaparece la barra de herramientas de un teléfono durante el desplazamiento.

E

Elemento picture
El elemento picture agrupa opciones de origen ordenadas con un img obligatorio y admite la dirección de arte y los formatos alternativos con una opción de respaldo.
Un picture puede ofrecer orígenes AVIF y WebP antes del archivo JPEG proporcionado por su img final.
Elemento source
Un elemento source dentro de picture ofrece opciones de imagen y condiciones opcionales de medios o formato que determinan si puede seleccionarse.
Un source que usa (min-width: 55em) puede proporcionar el recorte panorámico antes del img alternativo para pantallas estrechas.
em
Una unidad em es una longitud relativa a la fuente que se basa en la fuente del elemento padre para font-size y en la fuente del propio elemento para las demás propiedades.
Un botón con 1em de relleno horizontal gana más espacio alrededor de su etiqueta cuando crece su propia fuente.
Emulación de dispositivos para diseño adaptable
La emulación de dispositivos para diseño adaptable es una herramienta del navegador que aproxima condiciones de dispositivos como el tamaño del área de visualización, la densidad de pantalla y la entrada táctil para realizar pruebas.
Arrastrar el área de visualización emulada revela los anchos en los que el título de una tarjeta sobrepasa su contenedor.
Etiqueta meta del área de visualización
La etiqueta meta del área de visualización proporciona a los navegadores móviles instrucciones sobre el ancho de disposición y la escala inicial para que puedan mostrar una página a un tamaño útil.
La etiqueta va dentro del <head> del documento y solicita width=device-width, initial-scale=1.

F

Función clamp()
La función clamp() limita un tamaño preferido entre un mínimo y un máximo, lo que permite que el tamaño cambie de forma continua dentro de esos límites.
Un encabezado combina rem y vw en clamp() para crecer con la ventana dentro de límites útiles.
Función max()
La función max() selecciona el mayor de los valores proporcionados, por lo que puede establecer un límite inferior para una longitud mientras cambia otro valor.
Un espacio configurado con max(1rem, 2vw) no puede ser menor que 1rem cuando se estrecha el área de visualización.
Función min()
La función min() selecciona el menor de los valores proporcionados, por lo que puede establecer un límite superior para un tamaño que de otro modo crecería con el espacio disponible.
Una caja con width: min(100%, 36rem) llena los contenedores estrechos, pero deja de crecer a 36rem.
Función minmax()
La función de cuadrícula minmax() asigna a una pista un tamaño mínimo y uno máximo, permitiendo que crezca o se reduzca dentro del intervalo declarado.
Una pista que usa minmax(15rem, 1fr) no puede reducirse por debajo de 15rem aunque su contenedor sea más estrecho.

H

Hoja de estilo de impresión
Una hoja de estilo de impresión aplica CSS a la salida impresa, manteniendo legible el contenido útil mientras adapta la navegación, los colores y la presentación de los enlaces.
Una regla de impresión oculta los botones de menú y puede añadir el destino de cada enlace después de su etiqueta.

L

lvh
Una unidad lvh es el uno por ciento de la altura del área de visualización grande, que representa el espacio disponible para la disposición cuando las barras de herramientas retráctiles del navegador están ocultas.
Una sección configurada con 100lvh puede extenderse detrás de las barras de herramientas móviles mientras estas siguen visibles.

N

Nombre del contenedor
Un nombre de contenedor identifica un contenedor antecesor para que una consulta pueda seleccionarlo en lugar de usar la referencia válida sin nombre más cercana.
@container sidebar (width >= 30rem) busca un antecesor válido llamado sidebar.

O

Operador lógico
Un operador lógico combina o niega condiciones para que una consulta pueda exigir varios hechos o aceptar condiciones alternativas.
screen and (min-width: 40em) exige tanto una salida de pantalla como un área de visualización suficientemente ancha.
Orden del código fuente
El orden del código fuente es la secuencia de elementos en el HTML, que determina el orden de lectura y del foco del teclado incluso cuando CSS cambia la colocación visual.
Un enlace movido visualmente a la parte superior puede seguir alcanzándose el último con el tabulador si permanece al final del HTML.

P

Palabra clave auto-fill
La palabra clave auto-fill de repetición de cuadrícula conserva las pistas que caben aunque algunas estén vacías, manteniendo posiciones de columna sin usar en la fila.
Dos tarjetas pueden permanecer más estrechas porque auto-fill deja espacio reservado para pistas vacías adicionales.
Palabra clave auto-fit
La palabra clave auto-fit de repetición de cuadrícula crea tantas pistas como quepan y contrae las pistas sin usar para que las ocupadas puedan repartirse su espacio.
Dos tarjetas pueden estirarse a lo largo de una fila ancha cuando auto-fit contrae las pistas vacías de la fila.
Panel Red
El panel Red es una herramienta de desarrollo que enumera las solicitudes de recursos y los detalles de su transferencia, lo que ayuda a comprobar qué archivos de imagen descarga una página.
Una prueba del tamaño de un teléfono puede revelar una descarga de imagen grande causada por una indicación sizes que exagera el espacio asignado.
Píxel CSS
Un píxel CSS es una longitud de referencia usada para la disposición; en una pantalla de alta densidad puede corresponder a varios píxeles físicos del dispositivo.
Un teléfono con relación 3 y un área de visualización CSS de 390px tiene 1170 píxeles del dispositivo de ancho en su pantalla.
Precisión del puntero
La precisión del puntero describe con qué exactitud puede apuntar a una zona el dispositivo de señalización principal; en las consultas de medios se indica como fine, coarse o none.
Una tableta que usa principalmente interacción táctil puede indicar pointer: coarse incluso cuando su área de visualización es ancha.
Preferencia de esquema de color
La preferencia de esquema de color indica si el lector prefiere una apariencia clara u oscura, lo que una página puede usar para seleccionar colores de tema legibles.
Una consulta de tema oscuro combina un fondo oscuro con texto claro y legible y comprueba el contraste resultante.
Preferencia de movimiento reducido
La preferencia de movimiento reducido es una configuración del sistema que indica que el lector desea menos animación y que se comunica mediante una característica de medios CSS.
Un movimiento opcional grande puede ejecutarse solo dentro de prefers-reduced-motion: no-preference.
Propiedad object-position
La propiedad object-position establece la alineación del contenido de una imagen dentro de su caja y controla qué zona permanece visible cuando el ajuste la recorta.
Una miniatura usa object-position: top para mantener visible la parte superior de la imagen de origen cuando se recorta.
Punto de ruptura
Un punto de ruptura es un umbral en el que una regla condicional cambia una disposición o un estilo porque el contenido necesita una distribución diferente.
Una fila de navegación recibe un punto de ruptura donde sus etiquetas completas dejan de caber cómodamente en una línea.
Punto de ruptura basado en el contenido
Un punto de ruptura basado en el contenido se elige a partir del comportamiento de textos y controles reales, en lugar de un ancho predefinido asociado a un dispositivo.
Probar un título de página largo revela que la barra lateral debe moverse debajo de él antes de lo previsto.

R

Redistribución del contenido
La redistribución del contenido es su reorganización para ajustarse al espacio disponible; las WCAG AA comprueban el contenido vertical normal con un ancho de 320 píxeles CSS.
Un párrafo debe ajustarse en líneas más estrechas con un zoom del 400 % sin exigir desplazamiento horizontal de la página.
Referencia alternativa al área de visualización pequeña
La referencia alternativa al área de visualización pequeña proporciona las medidas de las unidades de contenedor cuando ningún antecesor es válido para la dimensión que necesita la unidad.
Si falta container-type, el tamaño en cqi puede quedar vinculado a la ventana en lugar de al contenedor de la tarjeta.
Relación de aspecto
Una relación de aspecto expresa la relación entre el ancho y la altura, lo que permite que una caja multimedia conserve las mismas proporciones cuando cambian sus dimensiones.
Una fotografía de 3:2 mostrada con 300px de ancho necesita 200px de altura para conservar su forma original.
Relación de píxeles del dispositivo
La relación de píxeles del dispositivo es el número de píxeles del dispositivo por cada píxel CSS, que relaciona la densidad de pantalla con la unidad de referencia de disposición de la página.
Una foto mostrada con un ancho de 250 píxeles CSS puede usar unos 500 píxeles de origen en una pantalla con relación 2.
rem
Una unidad rem es una longitud igual al tamaño de fuente del elemento raíz, que permite compartir una referencia entre tamaños sin acumular cambios por anidamiento.
Con una fuente de raíz de 20px, un encabezado configurado con 1.5rem mide 30px antes de cualquier ampliación con zoom.

S

Selección de resolución
La selección de resolución ofrece versiones de la misma imagen en distintos tamaños en píxeles para que el navegador pueda elegir el detalle adecuado para la visualización.
Una pantalla con relación 2 puede recibir un archivo más grande sin cambiar el recorte de la foto ni su caja CSS.
Sintaxis de intervalos
La sintaxis de intervalos expresa condiciones de tamaño de medios o contenedores mediante operadores de comparación, haciendo explícitos los límites incluidos y excluidos.
La condición (600px <= width < 900px) incluye 600px, pero excluye 900px.
svh
Una unidad svh es el uno por ciento de la altura del área de visualización pequeña, que representa el espacio de disposición móvil con las barras de herramientas del navegador visibles.
Una sección inicial usa min-height: 100svh para tener una altura inicial estable y permitir que crezca el contenido.

T

Tamaño en el eje en línea
El tamaño en el eje en línea es la dimensión de un elemento en la dirección que sigue el texto dentro de una línea; corresponde al ancho en la escritura horizontal.
La consulta inline-size de una tarjeta horizontal responde al ancho, mientras que su altura puede seguir dependiendo del texto.
Tamaño intrínseco de la imagen
El tamaño intrínseco de una imagen es la información de tamaño proporcionada por el recurso de imagen, que se usa cuando CSS y HTML no especifican otro tamaño de visualización.
Una imagen grande puede desbordar un artículo estrecho salvo que el CSS limite su ancho al espacio disponible.
Texto alternativo
El texto alternativo es el equivalente textual de un elemento img que comunica la finalidad o el contenido de la imagen cuando esta no puede percibirse.
Una única descripción alt debe seguir siendo precisa para todos los recortes que pueda seleccionar el picture que la contiene.
Tipo de medio
Un tipo de medio identifica la clase general de salida, como pantalla o impresión, a la que se aplica una hoja de estilo o una regla CSS condicional.
Un bloque @media print elimina los controles de navegación que un lector no puede usar en papel.

U

Unidad de consulta de contenedor
Una unidad de consulta de contenedor es una longitud basada en el uno por ciento del tamaño de un contenedor antecesor válido en una dimensión concreta.
Un encabezado con 5cqi crece cuando se ensancha el contenedor de su propia tarjeta, aunque el área de visualización no cambie.
Unidad relativa
Una unidad relativa obtiene su tamaño calculado de otra medida, como una dimensión del contenedor, un tamaño de fuente o el área de visualización.
Usar rem para el texto hace que su tamaño siga la fuente de la raíz en lugar de un valor fijo en píxeles.
Unidad relativa al área de visualización
Una unidad relativa al área de visualización es una longitud basada en un porcentaje de una dimensión de dicha área, independientemente del bloque contenedor del elemento.
Un elemento hijo de una barra lateral configurado con 50vw sigue usando la mitad del ancho de la ventana, incluso cuando supera el ancho de la barra.

V

Valor contain
El valor contain de object-fit mantiene toda la imagen visible dentro de una caja dimensionada y conserva sus proporciones, dejando espacio vacío si es necesario.
Un diagrama usa contain para que todas sus etiquetas sigan visibles aunque su forma difiera de la miniatura.
Valor cover
El valor cover de object-fit llena una caja de imagen dimensionada conservando las proporciones originales y recortando las partes que sobresalen de la caja.
Una foto de curso llena una miniatura de 4:3 con cover, por lo que puede desaparecer parte del contenido cercano a sus bordes.
vw
Una unidad vw es el uno por ciento del ancho del área de visualización y hace que una longitud siga los cambios del ancho de la ventana en píxeles CSS.
Con un área de visualización de 900px de ancho, 10vw produce una longitud calculada de 90px.

Sobre esta unidad

Por StudeliInformar de un error

Crea tus propios Materiales de Estudio

Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.

Comenzar