Estoy usando una etiqueta img de HTML para mostrar una foto en nuestra aplicación. He establecido su atributo de altura y ancho en 64. Necesito mostrar cualquier resolución de imagen (por ejemplo, 256x256, 1024x768, 500x400, 205x246, etc.) como 64x64. Pero al establecer los atributos de altura y anchura de una etiqueta img en 64, no se mantiene la relación de aspecto, por lo que la imagen se ve distorsionada.
Para su referencia, mi código exacto es:
<img src="Runtime Path to photo" border="1" height="64" width="64">
Respuestas:
No establezca la altura Y el ancho. Utilice uno u otro y se mantendrá la relación de aspecto correcta.
fuente
aquí está la muestra
fuente
Establecer
width
yheight
de las imágenes aauto
, pero limitar ambasmax-width
ymax-height
:Violín
Si desea mostrar imágenes de tamaño arbitrario en los "marcos" de 64x64px, puede usar envoltorios de bloques en línea y posicionamiento para ellos, como en este violín .
fuente
fuente
width
yheight
paraauto
.Ninguno de los métodos enumerados escala la imagen al tamaño más grande posible que cabe en un cuadro mientras conserva la relación de aspecto deseada.
Esto no se puede hacer con la etiqueta IMG (al menos no sin un poco de JavaScript), pero se puede hacer de la siguiente manera:
fuente
style="background: url('_'); background-size: cover width:_px height:_px"
para la<img>
etiqueta.cover
nocontain
con el fin de maximizar el tamaño de la imagen a la más grande posible.contain
conduce a "letterboxing".Use el
object-fit: contain
atributo en css de htmlimg
.fuente
Envuelva la imagen en una
div
con dimensiones de 64x64 y configurewidth: inherit
la imagen:fuente
¿Por qué no utiliza un archivo CSS separado para mantener la altura y el ancho de la imagen que desea mostrar? De esa manera, puede proporcionar el ancho y la altura necesariamente.
p.ej:
fuente
Prueba esto:
Agregar object-fit = "cover" forzará a la imagen a ocupar el espacio sin perder la relación de aspecto.
fuente