Me pregunto cómo podría cambiar el tamaño de una imagen junto con la ventana del navegador, esto es lo que he hecho hasta ahora (o descargar todo el sitio en un ZIP ).
Esto funciona bien en Firefox, pero tiene problemas en Chrome: la imagen no siempre cambia de tamaño, de alguna manera depende del tamaño de la ventana cuando se cargó la página.
Esto también funciona bien en Safari, pero a veces la imagen se carga con su ancho / alto mínimo. Tal vez esto se deba al tamaño de la imagen, no estoy seguro. (Si se carga bien, intente actualizar varias veces para ver el error).
¿Alguna idea sobre cómo podría hacer esto más a prueba de balas? (Si se necesita JavaScript, también puedo vivir con eso, pero es preferible CSS).
Respuestas:
Esto se puede hacer con CSS puro y ni siquiera requiere consultas de medios.
CSS:
Y si desea aplicar un ancho máximo fijo de la imagen, simplemente colóquelo dentro de un contenedor, por ejemplo:
Ejemplo de JSFiddle aquí . No se requiere JavaScript. Funciona en las últimas versiones de Chrome, Firefox e IE (que es todo lo que he probado).
fuente
2018 y solución posterior:
El uso de unidades relativas a la ventana gráfica debería facilitarle la vida, dado que tenemos la imagen de un gato:
Ahora queremos este gato dentro de nuestro código, respetando las relaciones de aspecto:
Hasta ahora no es realmente interesante, pero ¿y si quisiéramos cambiar el ancho de los gatos para que sea el máximo del 50% de la ventana gráfica?
La misma imagen, pero ahora restringida a un ancho máximo de 50vw vw (= ancho de la ventana gráfica ) significa que la imagen tendrá el ancho X de la ventana gráfica, según el dígito proporcionado. Esto también funciona para la altura:
Esto restringe la altura de la imagen a un máximo del 20% de la ventana gráfica.
fuente
En IE, el
onresize
evento se activa con cada cambio de píxel (ancho o alto), por lo que podría haber problemas de rendimiento. Retrasar el cambio de tamaño de la imagen por unos milisegundos usando window.setTimeout () de JavaScript.http://mbccs.blogspot.com/2007/11/fixing-window-resize-event-in-ie.html
fuente
Establezca la propiedad de cambio de tamaño en ambos. Entonces puedes cambiar el ancho y el alto de esta manera:
fuente
¿Estás usando jQuery?
Debido a que hice una búsqueda rápida en los conectores de jQuery y parecen tener algún complemento para hacer esto, verifique este, debería funcionar:
http://plugins.jquery.com/project/jquery-afterresize
EDITAR:
Esta es la solución CSS, solo agrego un estilo = "ancho: 100%" , y funciona para mí al menos en Chrome y Safari. No tengo ie, así que solo prueba allí y avísame, aquí está el código:
fuente
s why I
le pregunto si está usando jQuery porque si lo hace, ¡sería una buena idea agregar el complemento!Inicialmente, estaba usando el siguiente html / css:
Luego agregué
class="img"
a algo<div>
así:Y todo empezó a funcionar bien.
fuente
Puede usar la
scale
propiedad CSS3 para cambiar el tamaño de la imagen con css:Lecturas adicionales :
fuente
Solo usa este código. Lo que la mayoría está falsificando es especificar el ancho máximo como el ancho máximo de la imagen
Consulte esta demostración http://shorturl.at/nBKVY
fuente
Tratar
Solo funciona con bloque de visualización y bloque en línea, esto no tiene ningún efecto en los elementos flexibles, ya que acabo de pasar mucho tiempo tratando de averiguarlo.
fuente