固定图像
如果您不需要背景图像随页面滚动,您仍然可以将背景图像应用于body
标签,如果您设置background-attachment: fixed;
body {
background: url('images/bkg-img.png') no-repeat 0 0 fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
jQuery
如果 bg 图像确实需要随页面滚动,则可能值得应用一些 JavaScript 或 jQuery 代码,以保持 HTML 和 CSS 相对简单。
function stretchBg(width, height, contain) {
var pageWidth = $(document).width();
var pageHeight = $(document).height();
if ((pageWidth / pageHeight) > (width / height) == !!contain)
$('body').css({backgroundSize: 'auto ' + pageHeight + 'px'});
else
$('body').css({backgroundSize: pageWidth + 'px auto'});
}
$(document).ready(function(){ stretchBg(640, 480); }); // Page load
$(window).resize(function(){ stretchBg(640, 480); }); // Browser resize
JSFiddle Demo (和独立版本的演示)
为了保持纵横比,图像的原生宽度和高度被传递给上述函数,以及可选的第三个参数,用于 bg 图像是否应该覆盖或包含页面(默认为封面)。
或者,这里有一个更高级的演示(和独立版本),它会自动检测当前应用于 body 标签的 bg 图像的原始分辨率。下面是一个使用它的例子:
$(document).ready(function(){
FullBodyBackground.init({contain: false});
});