美文网首页
CSS3 - 背景

CSS3 - 背景

作者: Hyso | 来源:发表于2019-03-08 23:01 被阅读0次
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 300px;
            height: 200px;
            padding: 10px 5px;
            border: 10px dashed green;
            background: yellow url(1.jpg) no-repeat;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

代码说明:

1).box 的内容区域大小:宽为300px,高为200px

width: 300px;
height: 200px; 

2).box 的内边距:上下内边距各为10px,左右内边距各为5px

padding: 10px 5px;

3).box 的边框大小:上下左右边框各为10px

border: 10px dashed green;

因此 .box 实际大小为:
宽:内容区域宽 + 左右内边距之和 + 左右边框大小之和 = 300px + 5px*2 + 10px*2 = 330px
高:内容区域高 + 上下内边距之和 + 左右边框大小之和 = 200px + 10px*2 + 10px*2 = 240px

背景图片的定位区域

background-origin 属性规定背景图片相对于什么位置来定位。
1)background-origin: padding-box
默认值,规定背景图片相对于内边距左上角来定位。
2)background-origin: border-box
规定背景图片相对于边框左上角来定位。
3)background-origin: content-box
规定背景图片相对于内容区域左上角来定位。

规定背景图片相对于内边距左上角来定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 300px;
            height: 200px;
            padding: 10px 5px;
            border: 10px dashed green;
            background: yellow url(1.jpg) no-repeat;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

代码运行结果:

padding-box

图片中阴影部分为 .box 的内容区域,绿色虚线部分为 .box 的边框,黄色部分为 .box 的实际大小,由此可见,背景图片默认是相对于内边距左上角定位的,即 background-orign: padding-box;。

规定背景图片相对于边框左上角来定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 300px;
            height: 200px;
            padding: 10px 5px;
            border: 10px dashed green;
            background: yellow url(1.jpg) no-repeat;
                        background-origin: border-box;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

代码运行结果:

border-box

图片中阴影部分为 .box 的内容区域,绿色虚线部分为 .box 的边框,黄色部分为 .box 的实际大小,由此可见,此图中背景图片是相对于边框左上角定位的。

规定背景图片相对于内容区域左上角定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 300px;
            height: 200px;
            padding: 10px 5px;
            border: 10px dashed green;
            background: yellow url(1.jpg) no-repeat;
                        background-origin: content-box;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

代码运行结果:

context-box

图片中阴影部分为 .box 的内容区域,绿色虚线部分为 .box 的边框,黄色部分为 .box 的实际大小,由此可见,此图中背景图片是相对于内容区域左上角定位的。

背景剪裁后的区域

background-clip 属性规定背景剪裁后的区域。
1)background-clip: border-box
默认值,规定背景剪裁到边框。
2)background-clip: padding-box
默认值,规定背景剪裁到内边距。
3)background-clip: content-box
规定背景剪裁到内容区域。

规定背景剪裁到边框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 800px;
            height: 500px;
            padding: 10px 5px;
            border: 10px dashed green;
            background: yellow url(1.jpg) ;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

代码运行结果:

border-box

图片中阴影部分为 .box 的内容区域,绿色虚线部分为 .box 的边框,代码中设置了背景色为黄色,而图片中并没有黄色区域。由此可见,背景默认是被剪裁到了边框,即 background-clip: border-box;。

规定背景图片剪裁到内边距

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 800px;
            height: 500px;
            padding: 10px 5px;
            border: 10px dashed green;
            background: yellow url(1.jpg);
            background-clip: padding-box;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

代码运行结果:

padding-box

图片中阴影部分为 .box 的内容区域,绿色虚线部分为 .box 的边框,代码中设置了背景色为黄色,而图片中并没有黄色区域。由此可见,背景被剪裁到了内边距。

规定背景图片绘制到内容区域

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 800px;
            height: 500px;
            padding: 10px 5px;
            border: 10px dashed green;
            background: yellow url(1.jpg);
            background-clip: content-box;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

代码运行结果:

content-box

图片中阴影部分为 .box 的内容区域,绿色虚线部分为 .box 的边框,代码中设置了背景色为黄色,而图片中并没有黄色区域。由此可见,背景被剪裁到了内容区域。

背景图片大小

background-size 属性规定背景图片大小。
1)background-size: XXpx XXXpx
规定背景图片宽为 XXpx,高为 XXXpx。
2)background-size: cover
规定背景图片的宽高等比缩放至能将整个容器铺满的最小大小。
3)background-size: contain
规定背景图片的宽高等比缩放至适合容器的大小,不一定会铺满容器。

未规定背景图片大小

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 100px;
            height: 100px;
            border: 1px solid red;
            background: url(1.jpg) no-repeat;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

代码运行结果:

no size

由图片可见,当未设置背景图片大小时,若背景图片大小超过了容器大小,则背景图片超出容器大小的部分将不被显示出来。

规定背景图片大小为指定的大小

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 100px;
            height: 100px;
            border: 1px solid red;
            background: url(1.jpg) no-repeat;
            background-size: 100px 100px;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

代码运行结果:

100X100

由图片可见,当规定背景图片大小为指定的大小时,背景图片将被缩放(拉伸)至指定的大小。

规定背景图片大小为 cover

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 100px;
            height: 100px;
            border: 1px solid red;
            background: url(1.jpg) no-repeat;
            background-size: cover;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

代码运行结果:

cover.png

由图片可见,当规定背景图片大小为 cover 时,背景图片的宽高将被等比缩放至能将整个容器铺满的最小大小。

规定背景图片大小为 contain

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box {
            width: 100px;
            height: 100px;
            border: 1px solid red;
            background: url(1.jpg) no-repeat;
            background-size: contain;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

代码运行结果:

contain.png

由图片可见,当规定背景图片大小为 contain 时,背景图片的宽高将被等比缩放至适合容器大小(容器不一定会被铺满)。

相关文章

  • CSS3 背景

    知识点: CSS3 背景图像区域CSS3 背景图像定位CSS3 背景图像大小CSS3 多重背景图像CSS3 背景属...

  • 前端技术前沿5

    CSS3 背景CSS3 包含多个新的背景属性,它们提供了对背景更强大的控制。 background-sizebac...

  • CSS3 背景

    CSS3 背景 CSS3中包含几个新的背景属性,提供更大背景元素控制。在本章您将了解以下背景属性: backgro...

  • CSS3 背景

    1、CSS3 背景 CSS3中包含几个新的背景属性,提供更大背景元素控制。 在本章您将了解以下背景属性: back...

  • CSS背景

    CSS3 背景 CSS3 包含多个新的背景属性,它们提供了对背景更强大的控制。 在本章,您将学到以下背景属性: b...

  • CSS-背景5-多张背景图

    1、多张背景图 CSS3可以选择多张背景图,每张背景图都可以独立设置尺寸、定位。下面我们使用CSS3的多张背景图,...

  • CSS giao点东西!

    #CSS3多背景图之间的层叠关系 CSS3 multiple background-image多背景图之间的层叠关...

  • CSS3 背景

    CSS3 背景 CSS3 background-origin 属性 background-origin 属性规定背...

  • --- > css3-背景

    背景(background) 在CSS3之前我们对背景图片的控制极为有限,只能决定其来源、位置、重复,CSS3开辟...

  • css背景及其应用(二)

    背景透明(CSS3) CSS3支持背景半透明的写法语法格式是: background: rgba(0,0,0,0....

网友评论

      本文标题:CSS3 - 背景

      本文链接:https://www.haomeiwen.com/subject/epudpqtx.html