Хотя вопрос был опубликован несколько лет назад, я столкнулся с тем же вызовом и нашел эту более раннюю тему сегодня. Хотя я полагаю, что к настоящему времени могут быть более прекрасные решения, я все же хотел бы поделиться тем, что нашел сегодня.
Если бы та же проблема, фон 1 на весь экран, адаптивный и полностью ниже всего остального, а другой повторяющийся (-y) фон номер 2 должен идти сверху, но не прокручиваться из поля зрения, потому что он установлен так, чтобы следовать высоте окно, которое было дано определенному div, который содержит фон 2.
Давайте начнем с созданных мной div'ов:
<div id="full_background">
<img src="images/bkg_main.jpg" alt="" />
<div id="absolute">Contains background set to repeat-y</div>
<div id="content">Contains the content</div>
</div>
CSS выглядит так:
* { margin: 0px; padding: 0px; }
html { height: 100%; }
body { height: 100%; }
#full_background { width: 100%; min-height: 100%; position: relative; float: left; }
#full_background>img { position: absolute; top: 0; left: 0; position: fixed; width: 100%; z-index: 1; display: block; }
#full_background>div { position: relative; z-index: 2; }
#absolute { position: fixed !important; left: 0; width: 100%; height: 100%; background: url("../images/bkg2.png") top left repeat-y; }
#content { width: 290px; margin-left: 20px; padding: 30px; line-height: 1.7em; font-family: 'Lato', sans-serif; position: relative; float: left; }
Прежде всего, я добавил полноэкранный фон и изменил размер фонового изображения на свой сайт (используя div full_background и тег img), используя следующее решение (очень простое решение css, которое работает как чудо в любом браузере и в большинстве старых версий). например IE7) - http://www.webdeveloper.com/forum/archive/index.php/t-256494.html> см. последний ответ по aj_nsc
Далее, используя следующий метод jQuery - http://nicholasbarger.com/2011/08/04/jquery-makes-100-height-so-much-easier/ - я создал div с id = absolute, который получает ту же высоту, что и окно браузера (также при изменении размера). Я поместил свой повторяющийся (-y) фон № 2 здесь. Установите этот div в положение: fixed и он останется на месте, когда div с содержимым просматривается.
Затем под этим div вы помещаете div с вашим контентом, который свободно расширяется вниз за пределы окна браузера.
После прокрутки два фона будут постоянно заполнять всю область окна браузера (в том числе и по вертикали) и оставаться на месте, а содержимое прокручиваться вверх и вниз по ним.
Таким образом, после изменения размера вы также убедитесь, что оба фона постоянно заполняют всю фоновую область.
Я тестировал это решение в CH, FF, IE7-9 и Safari, и оно работало во всех без каких-либо проблем.