2010-09-21 16 views

Respuesta

37

Quizás debería usar :after o :before para esto, porque no hay necesidad de agregar marcas adicionales en su HTML. De esta manera:

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

Marque esta http://jsfiddle.net/h6K9z/

Funciona en IE8 & anteriormente. Para IE7 o IE6 puedes dar DIV extra para esto.

+0

Esto es increíble; ¡funciona! Gracias, @sandeep. 'derecho: 0; abajo: 0; izquierda: 0', ¿es esta una manera de "estirar" un contenedor completamente posicionado para llenar un ancho del 100% y una altura del 100% (comenzando desde 20px, por supuesto)? – moey

+0

Mientras revisaba su respuesta, descubrió el increíble servicio de lorempixel.com, ¡gracias! – Trufa

+0

derecha: 0; abajo: 0; left: 0 es realmente un contenedor de relleno, probado bien en ie8. También funciona como fondo: 90px; Esto solo valía oro. – Johan

-2

Sólo se necesita la propiedad background-position a fijarse:

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

posición de fondo mueve el punto de partida del fondo, p. 20px en la página, pero no impide que se repita * arriba * este 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

esto no funciona (probado con navegadores basados ​​en webkit) la posición de fondo no tiene ningún efecto. o la repetición y va más allá de la posición de inicio. – NullVoxPopuli

+0

Estoy teniendo el mismo problema, y ​​@TheLindyHop es correcto, no tiene ningún efecto en Webkit – codinghands

1

Yo prefiero el método abreviado:

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

No creo que la simple combinación de background-position y background-repeat por ej. repeat-y 0 20px funcionará. Suponiendo que jsFiddle sample representa el caso de OP, la solución debe hacer que el fondo verde comience en (vertical) 20px; el "¡Hola!" el texto no debe estar sobre el fondo verde.

Mi respuesta es que esto no se puede hacer de manera simple por CSS; lo que significa que es posible que desee cambiar su estructura HTML para lograr su objetivo. Sin embargo, estoy empezando una recompensa con la esperanza de que otros obtengan mejores respuestas.

Cuestiones relacionadas