2011-12-22 3 views
30

Verso responsive design, sto usando% s per le immagini, per es .:Altezza: Auto in Internet Explorer 8 e sotto

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

Questa grande opera, se non in Internet Explorer 8 e sotto. È dovuto al fatto che height: auto fa parte del CSS3, che è supportato solo da IE9 in poi?

E la parte più importante ... qualche suggerimento su come aggirare questo problema? L'unica cosa che riesco a pensare finora è di dargli un massimo di altezza.

Grazie

risposta

57

provare questo:

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. */ 

Entrambe le soluzioni di lavoro. La differenza è che width:inherit fa sì che le immagini riempiano lo spazio dei loro genitori mentre width:auto le supera alle loro dimensioni reali. Vedi fit.css

+1

L'unica cosa che funziona per me è: '@media \ 0screen {img {larghezza: auto}}/* Previene la distorsione dell'altezza in IE8. */' – jamietelin

+2

Questo risolve molto di più di IE 8. Risolto un problema in IE 11 per me. Che casino. –

+1

Questo lo ha risolto anche per me su IE11. Inizialmente aggiungendo "width: inherit" non è stato corretto. Grazie alla spiegazione di Ryan (COSÌ UTILE !!!) ho capito che avevo bisogno di modificare il contenitore dell'immagine e così ho dato anche "larghezza: 100%". Ho un'immagine in alto e voglio il testo sopra, quindi ecco il codice che ho trovato con: .containerBox { posizione: relativa; display: blocco in linea; larghezza: 100%; } e quindi per l'immagine: .img { display: block; larghezza massima: 100%; altezza: auto; margine: auto; padding: auto; larghezza: ereditaria; } – seizethecarp