CSS 背景

在 CSS 中,我们可以使用 background 属性及其相关的子属性来定义元素的背景效果,包括背景颜色、背景图片、背景平铺、背景位置等。

CSS 背景属性

CSS 提供了丰富的背景属性,允许我们对元素的背景进行各种各样的设置。其中,常用的背景属性如下。

1. background-color

background-color 属性用于定义元素的背景颜色。

语法:

background-color: 颜色值;

说明:

background-color 属性的取值是一个颜色值,可以是关键字、十六进制值、RGB 值、RGBA 值等。

例如,background-color: red; 表示将元素的背景颜色设置为红色。

2. background-image

background-image 属性用于定义元素的背景图片。

语法:

background-image: url(url);

说明:

background-image 属性的取值是一个 url() 函数,用于指定背景图片的路径。

例如,background-image: url("imgs/bg.jpg"); 表示将路径为 "imgs/bg.jpg" 的图片设置为元素的背景图片。

3. background-repeat

background-repeat 属性用于定义背景图片的平铺方式。

语法:

background-repeat: 关键字;

说明:

background-repeat 的取值是一个关键字。

  • repeat(默认值):表示背景图片在水平和垂直方向上都平铺。
  • repeat-x:表示背景图片仅在水平方向上平铺。
  • repeat-y:表示背景图片仅在垂直方向上平铺。
  • no-repeat:表示背景图片不平铺。

4. background-position

background-position 属性用于定义背景图片的位置。

语法:

background-position: x-position y-position;

说明:

background-position 属性的取值可以是长度值(px、%、em 等)或关键字(top、bottom、left、right、center)。x-position 表示背景图片在水平方向上的位置,y-position 表示背景图片在垂直方向上的位置。

例如,background-position: center center; 表示将背景图片在元素中水平居中和垂直居中。

5. background-size

background-size 属性用于定义背景图片的大小。

语法:

background-size: 数值或关键字;

说明:

background-size 的取值可以是一个数值,也可以是一个关键字。

当取值为数值时,表示指定背景图片的高度和宽度。此时可以设置一个值(同时设置宽高)或两个值(分别设置宽高)。

当取值为关键字时,常用取值如下。

  • auto(默认值):表示背景图片保持其原始大小。
  • cover:表示背景图片等比例缩放以完全覆盖元素,可能会导致图片部分裁切。
  • contain:表示背景图片等比例缩放以完全包含在元素中,可能会在元素中留有空白。

6. background-attachment

background-attachment 属性用于定义背景图片是否随着页面滚动而滚动。

语法:

background-attachment: 关键字;

说明:

background-attachment 的取值是一个关键字,常用取值如下。

  • scroll(默认值):表示背景图片会随着页面滚动而滚动。
  • fixed:表示背景图片固定在视口中,不会随着页面滚动而滚动。
  • local:表示背景图片会随着元素的内容滚动而滚动。

7. background

background 属性是一个复合属性,用于在一个声明中定义所有的背景属性。

语法:

background: background-color background-image background-repeat background-position background-size background-attachment background-origin background-clip;

说明:

background 属性可以按任意顺序设置,可以省略不需要设置的属性。

提示: 在实际开发中,background 简写也很常用,因为它能显著减少代码量。更重要的是,简写属性具有 “重置” 效果,能防止之前的样式污染。

CSS 背景示例

​接下来,我们通过几个简单的例子来讲解 CSS 背景属性是如何使用的。

示例 1:background-color 设置背景颜色

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 200px;
            height: 150px;
            /* 设置背景颜色 */
            background-color: lightskyblue;
        }
    </style>
</head>
<body>
    <div>绿叶网</div>
</body>
</html>

页面效果如下图所示。

background-color 设置背景颜色

分析:

在这个例子中,我们使用 background-color 属性来设置 div 元素的背景颜色为 lightskyblue。

示例 2:background-image 设置背景图片

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 200px;
            height: 200px;
            /* 设置背景图片 */
            background-image: url("imgs/goat.jpg");
            background-size: 200px 200px;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

background-image 设置背景图片

分析:

在这个例子中,我们使用 background-image 属性来定义元素的背景图片。其中,url("imgs/goat.jpg") 指定了背景图片的路径为 "imgs/goat.jpg"。

此外,background-size: 200px 200px; 表示限制背景图片的宽度和高度都是 200px,刚好与 div 元素的宽高相同。

示例 3:background-repeat 设置背景平铺

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 300px;
            height: 200px;
            border: 1px solid gray;
            background-image: url("imgs/flower.svg");
            /* 设置背景图片不平铺 */
            background-repeat: no-repeat;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

background-repeat 设置背景平铺

分析:

在这个例子中,background-repeat: no-repeat; 表示使得背景图片只显示一次,也就是不进行平铺。

如果改为 background-repeat: repeat-x;,此时页面效果如下图所示。

background-repeat: repeat-x; 的效果

如果改为 background-repeat: repeat-y;,此时页面效果如下图所示。

background-repeat: repeat-y; 的效果

如果改为 background-repeat: repeat;,此时页面效果如下图所示。

background-repeat: repeat; 的效果

示例 4:background-position 设置背景位置

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 300px;
            height: 200px;
            border: 1px solid gray;
            background-image: url("imgs/flower.svg");
            /* 设置背景图片不平铺 */
            background-repeat: no-repeat;
            /* 设置背景图片居中显示 */
            background-position: center center;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

background-position 设置背景位置

分析:

background-position: center center; 表示将背景图片在元素中水平居中和垂直居中显示。

示例 5:background-size 设置背景大小

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 200px;
            height: 200px;
            border: 1px solid gray;
            background-image: url("imgs/flower.svg");
            /* 设置背景图片不平铺 */
            background-repeat: no-repeat;
            /* 设置背景图片的大小 */
            background-size: cover;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

background-size 设置背景大小

分析:

在这个例子中,background-size: cover; 表示将背景图片等比例缩放以完全覆盖元素。如果背景图片本身比例与元素的宽高比例不一致,可能会导致图片部分裁切。

示例 6:background 复合属性

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 300px;
            height: 200px;
            border: 1px solid gray;
            /* 使用复合属性 */
            background: url("imgs/flower.svg") no-repeat center center;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

background 复合属性

分析:

在这个例子中,我们使用 background 这个复合属性来在一个声明中设置多个背景属性。下面 2 种写法是等价的。

/* 写法 1 */
background: url("imgs/flower.svg") no-repeat center center;

/* 写法 2 */
background-image: url("imgs/flower.svg");
background-repeat: no-repeat;
background-position: center center;

上一篇: CSS 鼠标样式

下一篇: CSS 背景颜色

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号