001
¿Cómo cambia automáticamente el tamaño de una imagen grande para que quepa en un contenedor div de ancho más pequeño mientras mantiene su relación ancho:alto?
Ejemplo: stackoverflow.com: cuando se inserta una imagen en el panel del editor y la imagen es demasiado grande para caber en la página, la imagen cambia de tamaño automáticamente.
Shih Min Lee
Resulta que hay otra manera de hacer esto: object-fit
.
<img style="height: 100%; width: 100%; object-fit: contain"/>
hará el trabajo. No olvide incluir otros atributos necesarios como src
y alt
por supuesto.
Violín: http://jsfiddle.net/mbHB4/7364/
-
Esto escalará la imagen para que se ajuste completamente a la dimensión más grande dentro del contenedor, por lo que es posible que la dimensión más pequeña no la cubra por completo. Para recortar la dimensión más grande en su lugar, utilice
object-fit: cover
– Gabriel Subvención
20 de octubre de 2015 a las 17:08
-
ajuste de objeto: la cubierta funcionó para mí, pero ahora estoy seguro de por qué.
– vikramvi
27 de julio de 2022 a las 5:40
Humilde estruendo
Aquí hay una solución que alineará tanto vertical como horizontalmente su img dentro de un div sin ningún estiramiento, incluso si la imagen proporcionada es demasiado pequeña o demasiado grande para caber en el div.
El contenido HTML:
<div id="myDiv">
<img alt="Client Logo" title="Client Logo" src="Imagelocation" />
</div>
El contenido CSS:
#myDiv
{
height: 104px;
width: 140px;
}
#myDiv img
{
max-width: 100%;
max-height: 100%;
margin: auto;
display: block;
}
La parte jQuery:
var logoHeight = $('#myDiv img').height();
if (logoHeight < 104) {
var margintop = (104 - logoHeight) / 2;
$('#myDiv img').css('margin-top', margintop);
}
tylerh
Tienes dos formas de hacer que la imagen responda.
-
Cuando una imagen es una imagen de fondo.
#container{ width: 300px; height: 300px; background-image: url(https://images.fonearena.com/blog/wp-content/uploads/2013/11/Lenovo-p780-camera-sample-10.jpg); background-size: cover; background-repeat: no-repeat; background-position: center; } <div id="container"><div>
Ejecutarlo aquí
Pero uno debe usar
img
etiqueta para poner imagenes como es mejor quebackground-image
en términos de SEO como puedes escribir palabra clave en elalt
delimg
etiqueta. Así que aquí puedes hacer que la imagen responda. -
Cuando la imagen está en
img
etiqueta.#container{ max-width: 400px; overflow: hidden; } img{ width: 100%; object-fit: contain; } <div id="container"> <img src="https://images.fonearena.com/blog/wp-content/uploads/2013/11/Lenovo-p780-camera-sample-10.jpg" alt="your_keyword"/> <div>
Ejecutarlo aquí
Pedro Mortensen
¡Hazlo simple!
Dale al recipiente un fijado height
y luego por el img
etiqueta dentro de él, establecer width
y max-height
.
<div style="height: 250px">
<img src="https://stackoverflow.com/questions/3029422/..." alt=" " style="width: 100%;max-height: 100%" />
</div>
La diferencia es que usted establece el width
ser 100%, no el max-width
.
Algunas bibliotecas interesantes para cambiar el tamaño de la imagen para que se ajuste al contenedor: * plugins.jquery.com/project/myimgscale * code.google.com/p/jquery-imagefit-plugin
– Maxime Pacary
13 de julio de 2011 a las 13:10
Aparte de la respuesta de @Kevin… También puede usar servicios como ImageBoss para crear sus imágenes con el tamaño que desee, bajo demanda. Ajustar la imagen en el contenedor es excelente, pero servir imágenes de manera receptiva es mucho mejor.
– Ígor Escobar
24 mayo 2018 a las 21:35
Posible duplicado: stackoverflow.com/questions/1891857/…
– jolumg
17 oct 2018 a las 10:33
@jolumg No del todo; Si bien hay mucha superposición en algunas soluciones, también hay muchas soluciones que no son intercambiables, ya que una pregunta cómo ampliar una imagen, mientras que esta pregunta cómo reducir una imagen.
– TylerH
2 de enero de 2019 a las 15:37