вот мое решение этой проблемы ...
CSS
#bgimg_top {
background: url(images/bg.jpg) no-repeat 50% 0%;
position: fixed;
top:0;
left: 0;
right:0 ;
bottom:0;
}
HTML
<body>
<div id="bgimg_top"></div>
....
</body>
Объяснение заключается в том, что фиксированная позиция для div будет всегда держать div на заднем плане, затем мы растягиваем div для перехода по всем углам браузера (при условии, что поле body = 0), используя (left, right, top, bottom) одновременно.
Пожалуйста, убедитесь, что вы не используете ширину и высоту, так как это заменит верхний, левый, правый, нижний параметры.