CSS3设定背景图的大小

2020-07-02 作者:无人过问

在CSS 3出现之前,背景图片的大小是由图片实际尺寸决定的。这给开发带来了很多麻烦。CSS 3出现后,开发者可以使用background-size属性来规定背景图片的尺寸,这就可以在不同的环境中重复使用背景图片了。

使用background-size: 100% auto; 等效于使用background-size: contain;
使用background-size: auto 100%; 等效于使用background-size: cover;

1、设置一个高度和宽度均为300像素的容器,然后将一张1366*768的图片设置为背景:
//CSS如下

  1. .container{
  2. background:url(bk.jpg) no-repeat;
  3. border: 2px solid black;
  4. margin:auto;
  5. width:300px;
  6. height:300px;
  7. }

//HTML如下

  1. <div class="container"></div>

执行结果如下:

2、添加background-size属性:
//CSS如下

  1. .container{
  2. background:url(bk.jpg) no-repeat;
  3. background:url(bk.jpg) no-repeat;
  4. background-size: 100% auto; /*设置宽度100%,高度自动*/
  5. -webkit-background-size: 100% auto;
  6. border: 2px solid black;
  7. margin:auto;
  8. width:300px;
  9. height:300px;
  10. }

执行结果如下:

3、修改background-size属性,让高度填充满:

  1. .container{
  2. background:url(bk.jpg) no-repeat;
  3. background:url(bk.jpg) no-repeat;
  4. background-size: auto 100%; /*设置高度100%,宽度自动*/
  5. -webkit-background-size: auto 100%;
  6. border: 2px solid black;
  7. margin:auto;
  8. width:300px;
  9. height:300px;
  10. }

执行结果如下:

4、修改background-size属性,让图片完整显示,2中的高度虽填满,但图片宽度显示不完整,修改css宽度和高度都100%:

  1. .container{
  2. background:url(bk.jpg) no-repeat;
  3. background:url(bk.jpg) no-repeat;
  4. background-size: 100% 100%; /*设置高度100%,宽度100%*/
  5. -webkit-background-size: 100% 100%;
  6. border: 2px solid black;
  7. margin:auto;
  8. width:300px;
  9. height:300px;
  10. }

执行结果如下: