background 属性教程:网页设计的基石
background 是 CSS 中最常用、最重要的属性之一,它允许你为元素设置一个背景,可以是纯色、图片,甚至是渐变色,一个精心设计的背景能极大地提升网页的视觉效果和用户体验。

(图片来源网络,侵删)
第一部分:快速入门 - 单个属性详解
background 是一个简写属性,它将多个子属性合并在一起书写,我们先来了解它的每一个组成部分。
background-color - 背景颜色
这是最简单的背景设置,为元素填充一个纯色。
- 语法:
background-color: <color-value>; - 取值:
- 关键字:
red,blue,green,black,white等。 - HEX:
#RRGGBB(#ff0000红色,#333333深灰色)。 - RGB/RGBA:
rgb(r, g, b)(rgb(255, 0, 0)红色) 或rgba(r, g, b, a)(a 代表透明度,0 为完全透明,1 为完全不透明)。 - HSL/HSLA:
hsl(h, s%, l%)(色相, 饱和度, 亮度),更符合人类对颜色的直觉。
- 关键字:
示例:
body {
background-color: #f0f2f5; /* 设置页面背景为一种柔和的灰色 */
}
.highlight-box {
background-color: rgba(52, 152, 219, 0.8); /* 半透明的蓝色 */
}
background-image - 背景图片
用于为元素设置一张或多张背景图片。

(图片来源网络,侵删)
- 语法:
background-image: <image-source>; - 取值:
url('path/to/image.jpg'): 指定图片的路径。none: 不设置背景图片(默认值)。
注意: 即使设置了背景图片,通常也建议同时设置一个 background-color,在图片加载失败或作为备用时,颜色可以显示出来。
示例:
.header {
background-image: url('images/header-bg.jpg');
}
background-repeat - 背景重复
控制背景图片是否以及如何重复。
- 语法:
background-repeat: <repeat-value>; - 常用取值:
repeat: 默认值,在水平和垂直方向上都重复。no-repeat: 不重复,只显示一次。repeat-x: 仅在水平方向重复。repeat-y: 仅在垂直方向重复。
示例:

(图片来源网络,侵删)
body {
background-image: url('images/pattern.png');
background-repeat: repeat; /* 默认值,铺满整个页面 */
}
.logo {
background-image: url('images/logo.png');
background-repeat: no-repeat; /* 只显示一次,不会平铺 */
}
background-position - 背景位置
控制背景图片在元素中的初始位置。
- 语法:
background-position: <position-x> <position-y>; - 常用取值:
- 关键字:
top,center,bottom,left,right。center center(居中),top right(右上角)。 - 百分比:
50% 50%(居中),100% 0(右上角)。 - 长度:
20px 30px(距离左边 20px,距离上边 30px)。
- 关键字:
示例:
.button {
background-image: url('images/icon-search.png');
background-repeat: no-repeat;
background-position: 10px center; /* 图片水平居中,距离左边 10px */
}
background-attachment - 背景附着
控制背景图片是随页面滚动而滚动,还是固定在视口中。
- 语法:
background-attachment: <attachment-value>; - 常用取值:
scroll: 默认值,背景会随着页面元素的滚动而滚动。fixed: 背景固定在视口中,不随页面滚动,当你滚动页面时,背景图片会保持在原地。local: 背景会随着元素的内部内容而滚动(较少使用)。
示例 (创建视差滚动效果):
.parallax-section {
background-image: url('images/mountain.jpg');
background-attachment: fixed;
background-position: center;
background-repeat: no-repeat;
background-size: cover; /* 后面会讲到 */
height: 100vh; /* 视口高度 */
}
background-size - 背景尺寸
控制背景图片的大小。
- 语法:
background-size: <size-value>; - 常用取值:
auto: 默认值,图片保持其原始尺寸。- 长度:
100px 200px(宽度 100px,高度 200px)。 - 百分比: 相对于元素的尺寸。
100% 100%会让图片拉伸以填满整个元素。 cover: 保持图片的宽高比,缩放图片直到它完全覆盖元素,图片的某些部分可能会被裁剪。contain: 保持图片的宽高比,缩放图片直到它适应整个元素,如果元素的宽高比与图片不同,元素中可能会留有空白。
cover vs contain 对比:
cover: 适合做全屏背景,确保没有空白,但可能裁剪图片。contain: 适合做图标或需要完整显示图片的场景,但可能无法填满整个元素。
示例:
.hero-banner {
background-image: url('images/banner.jpg');
background-size: cover; /* 横向或纵向拉伸,确保铺满,可能会有裁剪 */
}
.icon-bg {
background-image: url('images/icon.svg');
background-size: contain; /* 保持比例,确保图标完整显示 */
}
第二部分:核心技能 - background 简写属性
在实际开发中,我们通常使用 background 的简写形式,它可以将多个属性写在一行,代码更简洁。
语法规则
background: [background-color] [background-image] [background-repeat] [background-position] / [background-size] [background-attachment] [origin] [clip];
- 顺序不重要:浏览器会根据你提供的值自动匹配到对应的属性。
- 分隔符:
background-size必须用 与其他属性分隔开。 - 可以省略:可以只写你需要的属性,未写的部分会使用默认值。
简写示例
示例 1:简单的纯色背景
div {
background: #4CAF50; /* 等同于 background-color: #4CAF50; */
}
示例 2:带平铺的背景图片
body {
background: url('images/texture.png') repeat; /* 等同于 background-image + background-repeat */
}
示例 3:完整的背景图片设置 (最常用)
.hero {
background: url('images/hero.jpg') no-repeat center center / cover;
/* 解读:
- url('images/hero.jpg') -> background-image
- no-repeat -> background-repeat
- center center -> background-position
- / cover -> background-size
*/
}
示例 4:包含所有属性的复杂背景
.footer {
background: #333 url('images/footer-logo.png') no-repeat right center / 50px fixed;
/* 解读:
- #333 -> background-color
- url(...) -> background-image
- no-repeat -> background-repeat
- right center -> background-position
- / 50px -> background-size (宽度为 50px,高度为 auto)
- fixed -> background-attachment
*/
}
第三部分:高级技巧与最佳实践
多重背景
CSS 允许你为同一个元素设置多个背景,它们会按从上到下的顺序堆叠,第一个在最顶层。
- 语法: 用逗号 分隔每个背景的声明。
示例:
.card {
/* 第一个背景:渐变 */
background:
linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)),
/* 第二个背景:图片 */
url('images/card-bg.jpg'),
/* 第三个背景:纯色(备用) */
#222;
/* 为所有背景设置通用属性 */
background-size: cover, 100%, auto;
background-position: center, center, center;
background-repeat: no-repeat, no-repeat, repeat;
background-attachment: fixed, scroll, scroll;
}
解读:
- 首先显示一个半透明的黑色渐变。
- 在渐变之下,显示图片
card-bg.jpg。 - 如果图片加载失败,则显示深灰色
#222。 background-size等属性也用逗号分隔,分别对应上面的背景。
最佳实践
- 始终提供备用色:为背景图片设置一个相近的
background-color,以防图片加载失败或用户关闭了图片显示。 - 注意性能:大尺寸的背景图片会拖慢页面加载速度,请使用压缩过的图片,并根据需要使用
background-size: cover或background-size: contain来加载适当分辨率的图片。 - 可读性优先:确保背景(无论是颜色还是图片)不会干扰前景文字的可读性,对比度要足够高。
- 使用现代格式:对于背景图标,优先使用
.svg格式,因为它无损且体积小,对于照片,考虑使用.webp格式,它通常比.jpg或.png更小。
第四部分:总结与速查表
| 属性 | 作用 | 示例值 |
|---|---|---|
background-color |
设置背景颜色 | #fff, black, rgba(255,255,255,0.5) |
background-image |
设置背景图片 | url('image.jpg') |
background-repeat |
设置背景重复方式 | no-repeat, repeat-x, repeat-y |
background-position |
设置背景位置 | center, top right, 20px 30px |
background-attachment |
设置背景滚动方式 | scroll, fixed |
background-size |
设置背景图片大小 | cover, contain, 100% 100% |
background (简写) |
合并所有背景属性 | #ccc url(img.png) no-repeat center / cover |
通过这份教程,你应该已经掌握了 background 属性从基础到高级的所有用法,你可以开始尝试为你的网页创建美观、实用的背景了!
