CSS aspect-ratio y object-fit, con selector de punto focal

Guía de CSS aspect-ratio y object-fit

CSS aspect-ratio y object-fit: demos en vivo y Tailwind | We.Inc

Fija la proporción de una caja con aspect-ratio y luego encaja las fotos dentro con object-fit cover, contain, fill, none o scale-down. Haz clic para elegir un punto focal con object-position.

Dos propiedades resuelven la mayoría de los problemas de tamaño de imágenes. aspect-ratio: 16 / 9 hace que una caja mantenga esa forma con cualquier ancho, y sustituye al antiguo truco del padding-top. object-fit decide cómo una img o un video llena esa caja: cover recorta, contain deja bandas, fill estira. object-position elige qué parte queda visible cuando cover recorta.

Referencia rápida

Abajo, una imagen de prueba está dentro de una caja cuya forma puedes cambiar. Alterna entre los cinco valores de object-fit, haz clic en la imagen para mover el punto focal y copia el CSS o las clases de Tailwind. Más abajo: el truco del padding junto a aspect-ratio, videos incrustados responsive y cuadrículas de tarjetas con miniaturas uniformes.

Preguntas frecuentes

¿Cuál es la diferencia entre aspect-ratio y object-fit?

aspect-ratio da forma a la propia caja, en cualquier elemento. object-fit solo se aplica a contenido reemplazado como img, video y canvas, y decide cómo se dibuja ese contenido dentro de su caja. Normalmente usas los dos: aspect-ratio en la imagen para fijar su forma y object-fit: cover para que la imagen la llene.

¿Por qué object-fit no hace nada?

La caja de la imagen tiene la misma proporción que la imagen, así que no hay nada que recortar ni estirar. object-fit solo muestra una diferencia cuando la caja tiene otra forma, por ejemplo una altura fija más width: 100%, o un aspect-ratio distinto al del archivo.

¿Sigo necesitando el truco del padding-top?

No en los navegadores actuales. aspect-ratio funciona en Chrome, Edge, Firefox y Safari desde 2021. Conserva el truco solo si tienes que dar soporte a navegadores antiguos, y consulta caniuse para tu público.

¿Funciona object-fit con imágenes de fondo?

No. Para los fondos CSS, los equivalentes son background-size: cover o contain, y background-position para el punto focal. object-fit es para elementos img y video reales, que son mejores para las imágenes de contenido porque llevan texto alternativo y admiten srcset.

¿Se puede usar aspect-ratio en un div?

Sí. Cualquier elemento lo admite. Un div con width: 100% y aspect-ratio: 1 se convierte en un cuadrado que crece con su columna, algo útil para marcadores de posición de mapas, avatares y skeleton loaders.

Cómo resuelve el navegador aspect-ratio

Elegir un punto focal

aspect-ratio junto al truco del padding

Antes de aspect-ratio, una caja obtenía su forma de padding-top en porcentaje, porque los porcentajes de padding vertical se miden respecto al ancho. Funciona, pero el contenido tiene que posicionarse de forma absoluta dentro. Las dos cajas de abajo son 16:9.

Lo antiguo y lo nuevo, mismo resultado

56.25% es 9 dividido entre 16. La versión moderna necesita una sola línea y deja que el contenido fluya con normalidad.

Los cinco valores de object-fit en la misma foto

La imagen es 3:2 y cada caja es cuadrada, así que cada valor tiene que resolver un desajuste y las diferencias se ven con claridad.

Valores de object-fit

fill, contain, cover, none, scale-down

La misma imagen de 300 por 200 en cinco cuadrados de 110 píxeles. Fíjate en el punto rojo: es el sujeto que cover no debe perder.

Video e incrustaciones responsive

Un iframe al estilo YouTube que mantiene 16:9

Dale al iframe un ancho del 100% y un aspect-ratio. No hace falta un div contenedor ni posicionamiento absoluto.

Cuadrículas de tarjetas con miniaturas uniformes

Todas las miniaturas con la misma forma

Las imágenes subidas llegan con todo tipo de formas. aspect-ratio junto con object-fit: cover ordena la cuadrícula sin editar ni un solo archivo.

Clases de Tailwind para proporción y encaje

Utilidades de Tailwind v4 (consulta la documentación de v3 si usas una versión anterior)

Zona de pruebas de proporción, encaje y punto focal

Imagen original (3:2). Haz clic en ella, o ponle el foco y usa las flechas del teclado, para elegir el punto focal.

Elegir punto focal, ahora {pos}

Paisaje de prueba con un punto rojo como sujeto

Volver al centro

Resultado en una caja {ratio} con object-fit: {fit}

Proporción de la caja

El punto focal importa sobre todo con cover y none. Con contain o scale-down decide dónde van las bandas vacías.

Copiar CSS

Copiar clases

¿Necesitas el tamaño exacto en píxeles para una proporción? Usa la

calculadora de relación de aspecto

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio