CSS: фоновая позиция с повторением?

В настоящее время у меня есть изображение, повторяющееся на y, но я хочу, чтобы он начинал 20 пикселей вниз, откуда начинается div....

как это сделать?

Ответы

Ответ 1

Может быть, вы должны использовать :after или :before для этого, потому что нет необходимости добавлять дополнительную разметку в свой HTML. Вот так:

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

Отметьте http://jsfiddle.net/h6K9z/

Он работает в IE8 и выше. Для IE7 или IE6 вы можете предоставить дополнительные DIV для этого.

Ответ 2

Я предпочитаю сокращенный метод:

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

Ответ 3

Я не думаю, что просто объединяю background-position и background-repeat, например. repeat-y 0 20px будет работать. Предполагая, что этот пример jsFiddle представляет собой случай OP, решение должно заставить зеленый фон начинаться с (по вертикали) 20px; "Привет!" текст не должен сидеть поверх зеленого фона.

Мой ответ: это невозможно сделать с помощью CSS; Это означает, что вы можете изменить свою структуру HTML для достижения своей цели. Тем не менее, я начинаю щедрость, надеясь, что другие придут с лучшими ответами.

Ответ 5

Вам нужно только свойство background-position:

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