css фон, повторяющийся от 300 пикселей и далее

Мне интересно, знает ли кто-нибудь, как добиться следующего - взгляните на http://www.dspts.si

Первая 1/3 экрана имеет пустой фон, и далее узор должен повторяться. Я сделал это прямо сейчас, создав очень длинный узор png и установил для него смещение 300 и повторить x. Однако я не доволен этим решением, потому что оно сломается, если страницы когда-либо станут длиннее, чем фоновое изображение png.

Спасибо за любые предложения!


person Robert Ivanc    schedule 04.12.2009    source источник


Ответы (3)


Поместите повторяющийся узор в качестве фона для элемента html, затем белое изображение размером 1px * 300 пикселей в качестве фонового изображения для элемента body, и все готово.

html, body {
    height: 100%;
}

html {
    background: url(dotted.png);
}

body {
    background: url(white_1x300.png) 0 0 repeat-x;
}

Для этого необязательно использовать теги html и body, но это самый простой способ и не требует новой разметки.

person Tatu Ulmanen    schedule 04.12.2009
comment
Разве это невозможно с одним изображением? - person xtofl; 04.12.2009
comment
Нет, поскольку вы не можете имитировать белую область высотой 300 пикселей с элементами, и вы не можете комбинировать изображения, поскольку фон html должен повторяться. - person Tatu Ulmanen; 04.12.2009

Вы можете указать несколько фонов. См. Могу ли я использовать несколько фоновых изображений с помощью CSS?. Упомянутые там техники:

  • Поместите всю страницу в другой <div> контейнер или неправильно используйте для него тег <html>.
    Это означает, что вы указываете фон для <body> и один для <html>.
  • Используйте CSS3, который поддерживает несколько фоновых изображений. Это еще не поддерживается всеми распространенными браузерами.
person Georg Schölly    schedule 04.12.2009

Да, укажите фоновое изображение как обычно, но установите background-position следующим образом:

background-position:0 300px;

Это заставит фоновое изображение начинать с 0 пикселей слева и 300 пикселей сверху.

Не забывайте, что вы можете использовать FireBug с FireFox, чтобы легко диагностировать методы на веб-сайтах.

person Ben Everard    schedule 04.12.2009
comment
и можно ли тогда использовать repeat-y? - person xtofl; 04.12.2009
comment
Ах, справедливо: D, не заметил, что dspts.si использовал повторяющееся очень длинное тонкое изображение. Виноват - person Ben Everard; 04.12.2009
comment
да, ну вот что я сейчас сделал с позицией. если я буду повторять, он по какой-то причине обернется, и у меня также будет узор сверху. :( - person Robert Ivanc; 04.12.2009