Artículos
CSS

Definir relaciones de aspecto en CSS

Creado: 20/Ene/2025 Actualizado: 04/Feb/2025

Mediante la propiedad aspect-ratio podremos definir relaciones de aspecto en CSS de los elementos caja de una página. Esto nos permite, por ejemplo, ajustar imágenes para que se puedan ver mejor atendiendo al dispositivo en el que se esté renderizando nuestro contenido.

¿Qué son las relaciones de aspecto en CSS o la propiedad aspect-ratio?

Las relaciones de aspecto en CSS nos permiten definir la proporción que tiene una imagen entre su ancho y su alto. De esta manera, si la imagen tiene un mismo valor para el ancho y el alto, por lo que se ve como un cuadrado, tendrá una relación de aspecto de 1:1. Si utilizamos Instagram, veremos que la relación de aspecto que utiliza para sus fotos es de 1:1.

Pero, si por ejemplo estamos mirando un televisor, veremos que no es un cuadrado (los televisores muy antiguos sí que lo eran), sino que tiene forma de rectángulo. En este caso, los televisores tienen una relación de aspecto de 16:9 o, en algunos casos, de 4:3.

¿Cuáles son las relaciones de aspecto más comunes?

Antes de empezar a codificar nuestras primeras relaciones de aspecto en CSS vamos a conocer un poco más cuáles son las relaciones de aspecto más comunes. Las que nos podemos encontrar son:

  • 1:1 – Utilizada en redes sociales como Instagram o para fotos de perfil.
  • 16:9 – El estándar más común para vídeos en alta definición y pantallas modernas.
  • 4:3 – Formato tradicional usado en televisores antiguos y algunos dispositivos.
  • 21:9 – Formato panorámico utilizado en películas y monitores ultrawide.
Diferentes relaciones de aspecto en CSS
Imagen explicativa de la relación de aspecto de Silo Creativo en su artículo Creando relaciones de aspecto en CSS con la propiedad aspect-ratio.

Propiedad CSS aspect-ratio

Cuando trabajamos las relaciones de aspecto en CSS nos focalizamos en la propiedad CSS aspect-ratio. La propiedad aspect-ratio se puede aplicar directamente sobre un elemento caja. Así tendrá la siguiente sintaxis:

elemento {
  aspect-ratio: valor;
}

Los valores que podremos dar a esta propiedad son auto para ajustarse a la relación de aspecto del elemento que lo contiene o un valor que represente en valores ancho/alto la relación de aspecto. Es decir, podremos poner como valor 1/1, 16/9, 4/3,… o cualquier otro valor.

De esta manera, si por ejemplo queremos definir que todas las imágenes de una página tengan una relación de aspecto de 1:1 podremos añadir el siguiente código CSS:

img {
  aspect-ratio: 1/1;
}

Hay que tener en cuenta que esto solo regula la relación de aspecto de la imagen, pero no su tamaño. Es decir, las propiedades de width y height siguen siendo necesarias.

No deformar una imagen con aspect-ratio

Siguiendo con el ejemoplo de relaciones de aspecto en CSS tenemos que saber que una de las cosas que pasa al utilizar la propiedad aspect-ratio es que la imagen se tiene que adaptar a la nueva relación de aspecto y, por lo tanto, la imagen se puede ver deformada.

Para evitar que se deforme la imagen al utilizar la propiedad aspect-ratio en CSS se debe de combinar con la propiedad object-fit. La propiedad object-fit nos permite ajustar las imágenes o vídeos a contenedores.

La sintaxis de la propiedad object-fit es la siguiente:

object-fit : fill | contain | cover | none | scale-down

Los valores que podemos utilizar en la propiedad object-fit son los siguientes, cada uno con un comportamiento específico para el ajuste de las imágenes:

  • scale-down – Selecciona automáticamente entre ‘none’ o ‘contain’, eligiendo el que resulte en un tamaño más pequeño.
  • none – Mantiene la imagen en su tamaño original sin realizar ningún tipo de ajuste.
  • cover – Ajusta la imagen para cubrir completamente el contenedor, manteniendo la proporción pero pudiendo recortar los bordes.
  • fill – Estira la imagen para llenar el contenedor completamente, sin mantener la proporción original.
  • contain – Ajusta la imagen dentro del contenedor manteniendo su proporción original, sin recortar ni estirar.

En este caso, para que no se deforme la imagen, aspect-ratio vamos a asignar el valor de “cover” para que así rellene el espacio designado por la relación de aspecto.

Ejemplos de uso de las relaciones de aspecto en CSS.

Cuando estemos trabajando con relaciones de aspecto en CSS t publicando vídeos o imágenes, es bueno recurrir al atributo aspect-ratio, pero otros ejemplos típicos en los que nos lo podemos encontrar serían:

  • Tarjetas de presentación: Para mantener una relación de aspecto consistente en el diseño de tarjetas de visita digitales.
  • Galerías de imágenes: Para crear una cuadrícula uniforme donde todas las imágenes mantengan la misma proporción.
  • Banners publicitarios: Para asegurar que los anuncios se muestren correctamente en diferentes dispositivos y plataformas.

Centrándonos en cómo modelar una galería de imagen, lo primero será definir unos estilos con nombre que representen las principales relaciones de aspecto para poder ser utilizadas en el código HTML:

.cuadrado {
    aspect-ratio: 1/1;
    width: 100%;
    object-fit: cover;
}
.television {
    aspect-ratio: 4/3;
    width: 100%;
    object-fit: cover;
}
.apaisado {
    aspect-ratio: 16/9;
    width: 100%;
    object-fit: cover;
}
.widescreen {
    aspect-ratio: 21/9;
    width: 100%;
    object-fit: cover;
}

Así como algunos estilos para el contenedor en el que los insertamos:

.contenedor {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-around;
}
.item {
    width: 300px;            
}

Y lo siguiente sería ver cómo lo podemos utilizar en algún ejemplo. Para ello hemos seleccionado la galería de imágenes. En la que podemos ver que cada imagen es un cuadrado de relación de aspecto 1:1

<h2>Galería de Imágenes</h2>
<div class="contenedor">
    <div class="item">
        <img src="imagen1.jpg" alt="imagen1" class="cuadrado"/>
        <div class="contenido">Imagen 1</div>
    </div>
    <div class="item">
        <img src="imagen2.jpg" alt="imagen2" class="cuadrado"/>
        <div class="contenido">Imagen 2</div>
    </div>
    <div class="item">
        <img src=".imagen3.jpg" alt="imagen3" class="cuadrado"/>
        <div class="contenido">Imagen 3</div>
    </div>
    <div class="item">
        <img src="imagen4.jpg" alt="imagen4" class="cuadrado"/>
        <div class="contenido">Imagen 4</div>
    </div>
</div>

Espero que, una vez leído este artículo, te quede un poco más claro qué es y para qué podemos utilizar la propiedad aspect-ratio para definir relaciones de aspecto en CSS.

Código Fuente

Descárgate el código fuente de Definir relaciones de aspecto en CSS
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Definir relaciones de aspecto en CSS

Ejecuta el Código

Test CSS

¿Te atreves a probar tus habilidades y conocimiento en CSS con nuestro test?

Test CSS
Suscribir
Notificar de
guest
0 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios