在css中,可以利用background-size属性设置背景图片的自适应大小,该属性用于指定背景图片大小。当该属性的值为cover时,此时会保持图像的纵横比并将图像缩放成将完全覆盖背景定位区域的最小大小。

background-attachment 是效果实现的关键,各位可以自行尝试。

body {
/* 加载背景图 */
background-image: url(images/background-photo.jpg);

/* 背景图垂直、水平均居中 */
background-position: center center;

/* 背景图不平铺 */
background-repeat: no-repeat;

/* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */
background-attachment: fixed;

/* 让背景图基于容器大小伸缩 */
background-size: cover;

/* 设置背景颜色,背景图加载过程中会显示背景色 */
background-color: #464646;
}