Rellenar una imagen
Aquí te mostramos cómo puedes utilizar CSS y la relación de aspecto para centrar y rellenar una imagen:
- Primero, debes envolver tu imagen en un elemento contenedor, como un
<div>
o<figure>
. Esto permitirá que apliques estilos al contenedor que afectarán la imagen que está dentro. - Establece la propiedad
position
del contenedor enrelative
. Esto permitirá que posiciones la imagen dentro del contenedor. - Agrega un pseudo-elemento
::after
al contenedor. Esto se utilizará para mantener la relación de aspecto de la imagen y crear el relleno. - Establece la propiedad de
content
del pseudo-elemento::after
en una cadena vacía. Esto es necesario para crear el elemento. - Establece la propiedad
padding-bottom
del pseudo-elemento::after
en un valor porcentual que corresponda a la relación de aspecto de la imagen. Por ejemplo, si tu imagen tiene una relación de aspecto de 4:3, establecerías el relleno en75%
(ya que 3/4 = 0,75). Esto creará el relleno debajo de la imagen. - Establece la propiedad
position
del pseudo-elemento::after
enabsolute
. Esto posicionará el elemento dentro del contenedor. - Establece las propiedades
top
,left
,bottom
yright
del pseudo-elemento::after
en0
. Esto hará que el elemento llene el contenedor, creando el relleno. - Finalmente, establece la propiedad
position
de la imagen enabsolute
. Esto permitirá que centres la imagen dentro del contenedor usando las propiedadestop
,left
,bottom
yright
.
Aquí te mostramos un ejemplo del código CSS que utilizarías para centrar y rellenar una imagen con una relación de aspecto de 4:3:
.container {
position: relative;
width: 100%;
}
.container::after {
content: "";
display: block;
padding-bottom: 75%; /* relación de aspecto de 4:3 */
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
img {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: auto;
max-width: 100%;
max-height: 100%;
}
En este ejemplo, el elemento .container
es el contenedor de la imagen. El pseudo-elemento ::after
se utiliza para crear el relleno y mantener la relación de aspecto de la imagen. El elemento img
se establece en position: absolute
para que pueda centrarse dentro del contenedor usando las propiedades top
, left
, bottom
y right
.
Al establecer las propiedades max-width
y max-height
de la imagen en 100%
, la imagen se ajustará a las dimensiones disponibles manteniendo su relación de aspecto. Esto significa que el relleno creado por el pseudo-elemento ::after
siempre será proporcional al tamaño de la imagen.