2013-03-09 11 views
22

Ho uno <div> con un'immagine di sfondo.Impostazione di un'immagine di sfondo div in base alle sue dimensioni?

La dimensione <div> può variare nel tempo.

E 'possibile impostare l'immagine di sfondo Div in modo che si adatti alla dimensione <div>?

Diciamo che ho un div che è 400x400 e di un'immagine che è 1000x1000, è possibile ridurre l'immagine per 400x400 e quindi adattarsi alle dimensioni <div>?

+0

Utilizzare _just_ CSS? –

risposta

50

Se vuoi utilizzare CSS3, è possibile farlo abbastanza semplicemente utilizzando background-size, in questo modo:

background-size: 100%; 

E 'supportato da tutti i principali browser (tra cui IE9 +). Se desideri farlo funzionare in IE8 e prima, controlla le risposte a this question.

+0

un modo per farlo in css 2.1? – kfirba

+0

OK, indovina è il momento giusto per passare al CSS 3! Spero che IE supporti i CSS 3 ... – kfirba

+0

@kfirba Credo che IE9 + supporti le dimensioni in background, e sono sicuro che ci sono dei work-around per farlo funzionare in IE8 e prima se ne hai bisogno :) – lifetimes

13

Usa background-size proprietà per raggiungere questo obiettivo. Dovresti scegliere tra cover, contain e 100% - a seconda di cosa esattamente vorresti ottenere.

+2

'background-size: contain' ha funzionato per me! – Faiz

+0

Funziona perfettamente – Nabeel

0

impostare il vostro CSS per questo

img { 
    max-width:100%, 
    max-height100% 
} 
+0

questo è esattamente il problema, non voglio usare un'immagine Voglio usare un div con BG image – kfirba

+0

Ok, pensavo che stavi usando un'immagine all'interno del div. Dovresti quindi utilizzare la proprietà background-size. –

0

voluto aggiungere una soluzione per IE8 e di seguito (a partire da IE5.5 credo), che non può utilizzare background-size

div{ 
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src= 
'/path/to/img.jpg', sizingMethod='scale'); 
} 
1

usare questo come può anche agire come reattivo. :

background-size: cover; 
4

È possibile ottenere ciò con la proprietà background-size, che ora è supportata dalla maggior parte dei browser.

per scalare l'immagine di sfondo per adattarsi all'interno del div:

background-size: contain; 

Per scalare l'immagine di sfondo per coprire l'intero div:

background-size: cover; 
1

è possibile utilizzare la proprietà CSS3 background-size per Questo.

.header .logo { 
background-size: 100%; 
} 
Problemi correlati