2011-12-22 18 views
30

Hacia el diseño de respuesta, estoy usando% s para las imágenes, por ejemplo .:Altura: Auto en Internet Explorer 8 y por debajo

#example img { 
    width: 100%; 
    height: auto; 
    max-width: 690px; // Width of the image uploaded. 
} 

Esto funciona muy bien, excepto en Internet Explorer 8 y por debajo. ¿Esto se debe a que height: auto es parte de CSS3, que solo es compatible con IE9 en adelante?

Y la parte más importante ... ¿alguna sugerencia sobre cómo evitar este problema? Lo único que se me ocurre hasta ahora es darle una altura máxima.

Gracias

Respuesta

57

Prueba esto:

img { 
    width: inherit; /* Make images fill their parent's space. Solves IE8. */ 
    max-width: 100%; /* Add !important if needed. */ 
    height: auto; /* Add !important if needed. */ 
} 

O:

img { max-width:100%; height: auto; } /* Enough everywhere except IE8. */ 
@media \0screen {img { width: auto }} /* Prevent height distortion in IE8. */ 

Ambas soluciones de trabajo. La diferencia es que width:inherit hace que las imágenes llenen el espacio de sus padres, mientras que width:auto las maximiza en sus dimensiones reales. Ver fit.css

+1

Lo único que funciona para mí es: '@media \ 0screen {img {width: auto}}/* Evita la distorsión de altura en IE8. */' – jamietelin

+2

Esto resuelve mucho más que solo IE 8. Solucionado un problema en IE 11 para mí. Que desastre. –

+1

Esto también lo resolvió para mí en IE11. Al principio agregar "ancho: heredar" no lo solucionó. Gracias a la explicación de ryanve (¡TAN ÚTIL!) Me di cuenta de que necesitaba modificar el contenedor de la imagen y le di "ancho: 100%" también. Tengo una imagen en la parte superior y quiero texto encima, así que aquí está el código con el que terminé: .containerBox { position: relative; pantalla: bloque en línea; ancho: 100%; } y luego para la imagen: .img { display: block; max-width: 100%; altura: auto; margin: auto; relleno: automático; ancho: heredar; } – seizethecarp

Cuestiones relacionadas