2010-09-21 16 views

risposta

37

Forse dovresti usare :after o :before per questo, perché non è necessario aggiungere ulteriore markup nel tuo codice HTML. Come questo:

.container{ 
    height:400px; 
    background:red; 
    position:relative; 
    width:400px; 
} 
.container:after{ 
    content:""; 
    position:absolute; 
    top:20px; 
    left:0; 
    right:0; 
    bottom:0; 
    background:url(http://lorempixel.com/400/200) repeat-y; 
} 

Scegli questa http://jsfiddle.net/h6K9z/

Funziona in precedenza IE8 &. Per IE7 o IE6 è possibile aggiungere DIV extra per questo.

+0

Questo è fantastico; Funziona! Grazie, @sandeep. 'a destra: 0; fondo: 0; left: 0', è un modo per "allungare" un contenitore posizionato in modo assoluto per riempire il 100% di larghezza e il 100% di altezza (a partire da 20px, ovviamente)? – moey

+0

Mentre controlli la tua risposta hai scoperto il fantastico servizio di lorempixel.com, grazie! – Trufa

+0

destra: 0; fondo: 0; a sinistra: 0 è veramente riempitivo per container, testato ok in ie8. Funziona anche come bottom: 90px; Questo da solo valeva oro. – Johan

-2

Hai solo bisogno la proprietà background-position da impostare:

background-position: 0px 20px; 
background-repeat: repeat-y; 
+5

posizione sfondo sposta il punto iniziale dello sfondo, ad es. 20px in giù nella pagina, ma non gli impedisce di ripetere * sopra * questo punto. – ajcw

-1
.yourClass{ 
    background: url(images/yourImage.png) repeat-y; 
    background-position: 0px 20px; 
} 

http://www.w3schools.com/css/pr_background-position.asp

+2

questo non funziona (testato con browser basati su webkit) posizione di sfondo non ha alcun effetto. o la ripetizione y va oltre la posizione iniziale. – NullVoxPopuli

+0

Sto riscontrando lo stesso problema e @TheLindyHop è corretto, non ha alcun effetto in Webkit – codinghands

1

preferisco il metodo shorthand:

.yourClass { 
    background: url(../images/yourImage.png) repeat-y 0 20px; 
} 
0

Non credo semplicemente combinando background-position e background-repeat es repeat-y 0 20px funzionerà. Supponendo che questo jsFiddle sample rappresenti il ​​caso dell'OP, la soluzione dovrebbe rendere lo sfondo verde a partire da 20px (verticale); il "Ciao!" il testo non deve stare in cima allo sfondo verde.

La mia risposta è che questo non può essere fatto chiaramente dai CSS; nel senso, potresti voler cambiare la tua struttura HTML per raggiungere il tuo obiettivo. Tuttavia, sto iniziando un premio che spera che gli altri escano con risposte migliori.

Problemi correlati