También si quieren evitar el problema que dice @JuanDC, en el que las imágenes cargan pequeñas, la manera de solucionarlo es eliminando el CLS (Culmulative Layout Shift - Cambio de diseño acumulativo), que básicamente es cuando un elemento mueve el diseño después de cargar el html base, y resulta molesto para los usuarios.
ㅤ
Para esto existen varias técnicas, la mejor para mí es: Teniendo en cuenta el aspect ratio de la imagen, agregar un width y height fijo y proporcional al aspect ratio, para que con unas propiedades, css pueda calcular su tamaño, y siempre mantenga la proporción, también sirve para agregar un skeleton loader responsive a las imágenes.
¿Qué es el aspect ratio?
ㅤ
¿Pero esto qué significa, y cómo se hace?
Por ejemplo, en las imágenes de nuestro proyecto, ya sea que pidamos una imagen de 200x300, 300x450 … Etc. Estas imágenes (de los cards) siempre tendrán un aspec ratio de 2:3, ahora utilizaremos esto en código:
<img className="img-responsive" alt="imagen" width="200" height="300" />
Para que CSS pueda calcular la altura, necesita las propiedades: aspect-ratio: n/n;
, height: auto;
y el width
que necesitemos, en este caso puede ser 100%, porque en el código utilizo un grid
.img-responsive {
aspect-ratio: 2 / 3; // O también 200 / 300
border-radius: 1rem;
height: auto;
object-fit: cover;
vertical-align: top;
width: 100%;
}
También aquí hay información sobre el CLS, esta y otras técnicas para solucionarlo, en el que seguro lo explican más detallado, y mejor. 😅
ㅤ
Con esto, evitamos que cuando carguen las imágenes, muevan todo lo que está debajo de ellas, porque ya tienen su espacio asignado. 😃
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?