2011-09-12 2 views
14

Ho il seguente CSS:CSS come si allunga per adattarsi e mantenere le proporzioni?

.mod.left { 
background-image: url("http://www.myimage.jpg"); 
display: block; 
height: 160px; 
overflow: hidden; 
width: 175px; 
} 

che corrisponde a questo HTML:

<div class="mod left"></div> 

Essa si traduce in questo pasticcio:

enter image description here

se uso il background-css3 dimensione: 175 px 160 px; Il rapporto di aspetto è davvero incasinato risultante in un pasticcio come questo:

enter image description here

Esiste un modo per allungare l'immagine per adattarsi a un div? Ma in un modo in cui viene mantenuto il rapporto d'aspetto? Voglio un ritaglio automatico.

+0

l'esempio sta funzionando su firefox 6.0.2. l'immagine è ritagliata con il rapporto corretto. pace –

risposta

30

Questo dovrebbe funzionare (nei browser che supportano background-size):

background-size: 175px auto; 

Si potrebbe anche provare:

background-size: cover; 

Oppure:

background-size: contain; 

There's a good explanation on MDC.

+4

css3 è bellissima. –

5

Ha bisogno di essere un'immagine di sfondo?

img{ 
width:300px; 
height:auto; 
} 


<img src="your-photo.png"> 
1

È possibile utilizzare la proprietà background-size con il valore contain:

background-size: contain; 

Ecco un esempio di lavoro: https://jsfiddle.net/gusrodriguez/auuk97hf/1/

Nell'esempio di cui sopra, il corpo ha un'immagine allungata in background. Inoltre ci sono due div con dimensione arbitraria, e con un'altra immagine che si adatta e mantiene le proporzioni.