视频加载失败

CSS3背景与渐变

1990 字
10 分钟
CSS3背景与渐变

背景颜色基础知识#

使用 background-color 设置元素的背景颜色。

基本语法:

.box {
background-color: red;
}

常用属性值:

属性值说明示例
颜色名称使用英文颜色名称red
HEX十六进制颜色#ff0000
RGB红、绿、蓝三通道rgb(255 0 0)
RGBARGB 颜色与透明度rgba(255, 0, 0, 0.5)
HSL色相、饱和度、亮度hsl(0 100% 50%)
transparent完全透明transparent

注意:

  • background-color 默认值是 transparent。
  • 背景颜色不会被子元素直接继承。
  • 背景颜色通常覆盖元素的内容区、内边距和边框区域,但实际绘制范围可以由 background-clip 控制。

背景图片基础知识#

使用 background-image 设置元素的背景图片。

基本语法:

.box {
width: 500px;
height: 300px;
background-image: url("/images/bg.jpg");
}
属性值说明
none不使用背景图片,默认值
url()指定背景图片地址
linear-gradient()线性渐变背景
radial-gradient()径向渐变背景

背景图片与背景颜色同时使用:

.box {
background-color: #eee;
background-image: url("/images/bg.jpg");
}

图片绘制在背景颜色上方,透明的图片区域可以显示下方的背景颜色。

注意: 背景图片默认会按照原始尺寸显示,并且平铺重复,不会自动铺满容器。

背景图片的重复模式#

使用 background-repeat 控制背景图片是否重复。

基本语法:

.box {
background-image: url("/images/bg.jpg");
background-repeat: no-repeat;
}
属性值说明
repeat水平和垂直重复,默认值
no-repeat不重复
repeat-x只沿水平方向重复
repeat-y只沿垂直方向重复
space完整图片均匀排列,尽可能分配间距
round调整图片尺寸,让重复图片刚好铺满

在现代网页开发中,背景图通常搭配 no-repeat,例如网站 Banner、卡片背景等。小纹理背景则可以使用 repeat。

背景尺寸#

使用 background-size 设置背景图片的显示尺寸。

基本语法:

.box {
background-image: url("/images/bg.jpg");
background-size: cover;
}
属性值说明
auto保持图片原始尺寸或自动比例,默认值
cover保持比例,覆盖整个容器,可能裁掉部分图片
contain保持比例,完整显示图片,可能留白
100% 100%强制填满容器,可能导致图片变形
200px 100px指定宽度和高度
50% auto宽度为背景定位区域的 50%,高度自动等比缩放

实际开发中,最常使用的是:

.banner {
background-size: cover;
background-repeat: no-repeat;
}

背景裁切#

使用 background-clip 控制背景的绘制范围。

基本语法:

.box {
background-color: skyblue;
background-clip: padding-box;
}
属性值说明
border-box背景绘制到边框区域,默认值
padding-box背景只绘制到内边距边缘,不延伸到边框区域
content-box背景只绘制在内容区域
text背景通过文字形状显示

文字渐变的典型用法:

.title {
background: linear-gradient(to right, red, blue);
background-clip: text;
color: transparent;
}

注意:background-clip 控制的是背景绘制区域,并不是直接调整图片的大小。另外还有 background-origin,用于控制背景图片定位时的参考区域,默认是 padding-box。不要和 background-clip 混淆

背景固定#

使用 background-attachment 控制背景图片如何随着滚动发生变化。

基本语法:

.box {
background-image: url("/images/bg.jpg");
background-attachment: fixed;
}
属性值说明
scroll背景跟随元素移动,不随元素内部内容滚动,默认值
fixed背景相对视口固定
local背景随元素内部的滚动内容一起移动

常见用法:页面固定背景

body {
background-image: url("/images/bg.jpg");
background-size: cover;
background-attachment: fixed;
}

页面滚动时,背景相对于浏览器视口保持固定,可以实现一些固定背景视觉效果。

注意:fixed 在部分移动端浏览器中存在兼容性和显示行为差异,正式项目中需要测试。

背景图片位置#

使用 background-position 控制背景图片在元素中的位置。

基本语法:

.box {
background-image: url("/images/bg.jpg");
background-position: center center;
}
属性值说明
left top左上角,默认位置
center center水平、垂直居中
right bottom右下角
center top水平居中,垂直顶部
50% 50%水平、垂直居中
20px 40px按水平、垂直偏移量定位
right 20px bottom 10px距右边 20px,距底部 10px

重点: background-position: 50% 50% 并不是把图片左上角放在容器中心,而是让图片自身的 50% 位置与容器的 50% 位置对齐,从而实现居中。

背景图通常会搭配下面的写法:

.box {
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}

background综合属性#

background 是复合属性,可以在一条 CSS 声明中设置多个背景属性。

基本语法:

.box {
background: #eee url("/images/bg.jpg") center / cover no-repeat fixed;
}

这条代码相当于:

.box {
background-color: #eee;
background-image: url("/images/bg.jpg");
background-position: center;
background-size: cover;
background-repeat: no-repeat;
background-attachment: fixed;
}

常用背景属性汇总:

属性作用默认值
background-color背景颜色transparent
background-image背景图片none
background-repeat图片重复repeat
background-size图片尺寸auto auto
background-clip背景裁切border-box
background-attachment背景滚动行为scroll
background-position图片位置0% 0%
background-origin背景定位区域padding-box

注意三个问题:

  1. background 不要求所有值遵循唯一固定顺序,但 background-size 必须紧跟在 background-position 后面,并使用 / 分隔。
  2. 使用 background 简写会重置未指定的背景子属性。
  3. 可以使用逗号设置多个背景图层,前面声明的图层显示在上方。

例如:

.box {
background:
linear-gradient(to right, #0008, transparent),
url("/images/bg.jpg") center / cover no-repeat;
}

这段代码在背景图片上覆盖了一层半透明渐变,常用于 Banner 上的文字可读性处理。

线性渐变#

使用 linear-gradient() 创建沿某个方向逐渐变化的颜色背景。

注意:linear-gradient() 是 CSS 图像函数,而不是独立的 CSS 属性。

基本语法:

.box {
background-image: linear-gradient(to right, red, blue);
}

渐变方向

方向说明
to right从左到右
to left从右到左
to bottom从上到下,默认
to top从下到上
to bottom right从左上到右下
45deg使用角度指定渐变方向

角度规则:0deg 指向上方、90deg 指向右方、180deg 指向下方、270deg 指向左方。

多颜色渐变

.box {
background: linear-gradient(
to right,
red,
yellow,
green,
blue
);
}

指定颜色位置

.box {
background: linear-gradient(
to right,
red 0%,
yellow 30%,
blue 100%
);
}
  • red 0%:红色位于渐变起点。
  • yellow 30%:黄色位于渐变路径的 30% 位置。
  • blue 100%:蓝色位于渐变终点。

径向渐变#

使用 radial-gradient() 创建从某个中心点向四周扩散的渐变。

基本语法:

.box {
background: radial-gradient(red, blue);
}

与线性渐变不同,径向渐变的颜色并不是沿直线变化,而是向周围扩散。

常用属性值

属性值说明
circle圆形渐变
ellipse椭圆形渐变,默认形状
at center渐变中心位于元素中心,默认
at top left渐变中心位于左上角
at 30% 70%自定义渐变中心位置
closest-side渐变末端到距离中心最近的边
farthest-side渐变末端到距离中心最远的边
closest-corner渐变末端到距离中心最近的角
farthest-corner渐变末端到距离中心最远的角,默认

自定义径向渐变

.box {
background: radial-gradient(
circle at 30% 40%,
red 0%,
yellow 40%,
blue 100%
);
}

代码说明:

  • circle:渐变形状为圆形。
  • at 30% 40%:渐变中心位于水平 30%、垂直 40% 的位置。
  • red 0%:中心起点为红色。
  • yellow 40%:渐变路径的 40% 位置为黄色。
  • blue 100%:终点为蓝色。

总结:CSS 背景属性速记#

需求推荐写法
设置背景颜色background-color: #fff
设置背景图片background-image: url(...)
禁止背景重复background-repeat: no-repeat
图片完整显示background-size: contain
图片铺满容器background-size: cover
只在内容区域绘制背景background-clip: content-box
固定背景background-attachment: fixed
图片水平垂直居中background-position: center
背景综合设置background: url(...) center / cover no-repeat
线性渐变linear-gradient(to right, red, blue)
径向渐变radial-gradient(circle, red, blue)

实际开发最值得优先掌握的组合:

/* 网站 Banner */
.banner {
height: 400px;
background: url("/images/banner.jpg") center / cover no-repeat;
}
/* 卡片渐变背景 */
.card {
background: linear-gradient(135deg, #667eea, #764ba2);
}
/* 渐变文字 */
.title {
background: linear-gradient(to right, #00c6ff, #0072ff);
background-clip: text;
color: transparent;
}

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

CSS3背景与渐变
https://f.youzi177.cn/posts/2026100804css3-bei-jing-yu-jian-bian/
作者
小封鸭
发布于
2026-10-08
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
小封鸭
小楼一夜听春雨,深巷明朝卖杏花
公告
欢迎来到我的博客。这里主要记录前端全栈和日常内容
分类
标签
最新动态
站点统计
文章
60
分类
3
标签
12
总字数
107,734
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
EdgeOne Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录