设置背景图片

设置背景图铺不满,或者有重复怎么解决?

其实,该方案对所有的块级容器都可以生效。块级容器的宽高是动态的,那么背景图将自动伸缩,充满整个容器。

以给body设置背景如下:

body {
/* 加载背景图 */
background-image: url(https://upload-images.jianshu.io/upload_images/5726812-e9f62b1a98cd6b86.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240);
/* 背景图垂直、水平均居中 */
background-position: center center;
/* 背景图不平铺 */
background-repeat: no-repeat;
/* 当内容高度大于图片高度时,背景图像的位置相对于viewport固定 */
background-attachment: fixed;
/* 让背景图基于容器大小伸缩 */
background-size: cover;
/* 设置背景颜色,背景图加载过程中会显示背景色 */
background-color: #464646;
}

上面最重要的一条就是:
  background-size: cover;
  这样浏览器就会按比例缩放背景图直至背景图宽高不小于容器的宽高(在上面的例子中,就是body标签)。
  这里需要注意的一点就是:如果背景图小于body标签的尺寸(例如在高分辨率显示器上,或页面内容特别多时),浏览器会拉伸图片。都知道,当把一个图片拉伸时,图片会变模糊。
  因此,在选择背景图时,要特别注意尺寸。为了照顾到大尺寸屏幕。
  同时,为了让背景图始终相对于viewport居中,声明了:
  background-position: center center;
  上面的规则会把背景图缩放的原点定位到viewport的中心。
  接下来需要解决的问题是:当内容的高度大于viewport的高度时,会出现滚动条。希望背景图始终相对于viewport固定,即使用户滚动时也是一样。
  解决办法就是:
  background-attachment: fixed;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容