2010-09-21 7 views

Antwort

37

Vielleicht sollten Sie hierfür :after oder :before verwenden, da Sie kein zusätzliches Markup in Ihrem HTML-Code hinzufügen müssen. Wie folgt aus:

.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; 
} 

prüfen diese http://jsfiddle.net/h6K9z/

Es in IE8 funktioniert & oben. Für IE7 oder IE6 können Sie dafür extra DIV angeben.

+0

Das ist genial; Es klappt! Danke, @sandeep. 'rechts: 0; unten: 0; links: 0', ist das ein Weg, einen absolut positionierten Container zu "strecken", um 100% Breite und 100% Höhe zu füllen (natürlich ab 20px)? – moey

+0

Bei der Überprüfung Ihrer Antwort entdeckte Lorepixel.com einen tollen Service, danke! – Trufa

+0

rechts: 0; unten: 0; links: 0 ist wirklich Behälterfüller, in ie8 ok getestet. Es funktioniert auch wie unten: 90px; Dies allein war Gold wert. – Johan

-2

Sie müssen nur die background-position Eigenschaft festgelegt werden:

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

Hintergrundposition verschiebt den Startpunkt des Hintergrunds, z. 20px auf der Seite, aber es verhindert nicht, dass es * über * diesen Punkt wiederholt. – ajcw

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

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

+2

dies funktioniert nicht (getestet mit Webkit-basierten Browsern) Hintergrundposition hat keine Wirkung. oder die Wiederholung y geht über die Startposition hinaus. – NullVoxPopuli

+0

Ich habe das gleiche Problem, und @TheLindyHop ist korrekt, es hat keinen Effekt in Webkit – codinghands

1

Ich ziehe das Kurzverfahren:

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

Ich glaube nicht einfach background-position Kombination und background-repeat z repeat-y 0 20px wird funktionieren. Unter der Annahme, dass jsFiddle sample den Fall von OP darstellt, sollte die Lösung den grünen Hintergrund bei (vertikal) 20px beginnen lassen; das "Hallo da!" Text sollte nicht auf dem grünen Hintergrund sitzen.

Meine Antwort ist dies kann nicht einfach durch CSS getan werden; Das bedeutet, dass Sie möglicherweise Ihre HTML-Struktur ändern möchten, um Ihr Ziel zu erreichen. Ich beginne jedoch mit einer Kopfgeldschance und hoffe, dass andere bessere Antworten finden.

Verwandte Themen