background-size

background-size

支持状况:IE9+、Firefox 4+、Opera、Chrome 以及 Safari 5+url

在移动开发的时候,须要尺寸减半的须要。prototype

特别是在引入雪碧图的时候,之前的写法老是直接宽,高直接减半,没有出过问题code

.BZ{
    background:url() no-repeated;
    background-size: width/2, height/2;
}

今天有人问我,background-size直接设为50%不就好了,没有细想,直接说行。图片

实际看效果的时候,出现了问题,原来不能这么用。开发

本身慢慢研究,先总结下:get

先对照本身的例子说明下,加强本身的记忆:it

background-size via @CodePenio

background-size: 参考是元素自己的宽高,并非参考引入图片的宽高,也就是说它参考的是section的大小,不是图片自身

直接缩减图片的宽高im

.bz{
  background-image: url();
  background-repeat: no-repeat;
  background-size: 320px,200px;
}

设置宽高一个属性的时候,另外一个将会按照原来的比例进行变化(即设置一个属性,另外一个等比例变化)

.bz{
    background-size: 320px,auto; // 高也会变半
    background-size: auto, 200px; // 宽也会变半
}

设置多个背景图片

.secmul{
    width: 480px;
    height: 300px;
// set imgs urls
    background-image: url(../../static/imgs/m1.jpg), url(../../static/imgs/m2.jpg), url(10.large.jpg);
// set repeat pros
    background-repeat: no-repeat,no-repeat,no-repeat;
// 设置不一样的位置,相对与最外层的画布大小
    background-position: 0px 0px, right bottom, right top;
    background-color: #EEE;
// 分别设置 不一样背景图片的大小
    background-size: 200px 225px, 100px 100px, cover;
}

cover与contain 属性详解

background-size-prototype @CodePen总结

cover:背景图像缩放,保留图像原有的比例/长宽比,无论背景图像大于仍是小于背景区域,都会覆盖背景区域,图像的宽度或高度等于或超过背景区域,再次,根据背景图像的比例是否匹配的背景区域,背景图像的某些部分可能不在背景区域内。

contain:背景图像缩放,同时保留图像原有的比例/长宽比,不管是图像的宽度或高度超过背景区域,以尽量大的覆盖背景区域。所以,根据背景图像的比例是否匹配背景区域,可能会有一些背景图像覆盖不到背景地区。

本站公众号
   欢迎关注本站公众号,获取更多信息