news 2026/6/18 10:54:10

CSS 背景属性完全指南:从颜色到简写,一次搞懂

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CSS 背景属性完全指南:从颜色到简写,一次搞懂

在网页开发中,背景background)​ 是最常用的 CSS 特性之一。无论是纯色底色、纹理平铺,还是全屏大图、视差滚动,都离不开背景属性家族。本文将系统梳理 7 个背景相关属性,并给出实用案例,帮你彻底掌握。

🎨 一、背景属性总览

CSS 为背景提供了 7 个细分属性,还有一个把它们打包的简写属性:

属性作用
background-color背景颜色
background-image背景图片
background-repeat图片平铺方式
background-size图片尺寸
background-position图片位置
background-attachment图片是否随滚动
background-clip/ background-origin绘制/定位区域(延伸)
background以上属性的简写

下面逐个拆解。

1️⃣ background-color:背景颜色

设置元素的背景色,默认值为transparent(透明)。

.box{width:300px;height:300px;background-color:#ccc;}

💡 即使设置了背景图片,也强烈建议同时声明background-color。当图片加载失败(断网、路径错误)时,颜色仍能保证可读性;半透明 PNG 下颜色也会透出来。

⚠️ 无障碍提示:文本与背景的对比度至少4.5:1(大号文本 3:1),否则低视力用户难以阅读。

2️⃣ background-image:背景图片

.box{width:600px;height:600px;background-image:url("images/img1.jpg");}

默认行为要记牢:

  • 图片从元素左上角开始显示
  • 图片小于元素​ → 默认水平+垂直平铺,铺满元素
  • 图片大于元素​ → 从左上角覆盖,超出部分不可见
  • 可设多张背景,用逗号分隔,先写的在上层
.box{background-image:url(star.png),url(cat.jpg);}

📌 背景图对屏幕阅读器不可见,若图片承载关键信息,必须在 HTML 中语义化描述。

3️⃣ background-repeat:平铺方式

控制图片够不够大时怎么重复:

.box{width:800px;height:600px;background-image:url(./images/3.webp);background-repeat:no-repeat;}

常用值:

含义
repeat水平 + 垂直都平铺(默认)
repeat-x仅水平
repeat-y仅垂直
no-repeat不平铺
space均匀平铺,不裁剪,首尾贴边
round随容器伸缩,保证完整显示整数张

spaceround在现代浏览器已广泛支持,适合纹理背景。

4️⃣ background-size:图片大小

background-size:800px;/* 宽 800,高等比缩放 */background-size:400px 600px;/* 宽 高 明确值 */background-size:50%;/* 相对元素尺寸的百分比 */background-size:cover;/* 等比例放大,完全覆盖元素,可能裁剪 */background-size:contain;/* 等比例放大,完整显示,可能留白 */

核心区别一句话:

  • cover​ → 填满容器,图片可能"溢出去"被裁掉
  • contain​ → 图片完整显示,容器可能"空一块"露底色

💡 百分比的计算基准是背景定位区域(默认含padding,受background-origin影响)。

5️⃣ background-position:图片位置

控制背景图在容器里的起点:

background-position:50px 50px;/* 右移 50,下移 50 */background-position:-50px -50px;/* 左移 50,上移 50 */background-position:50% 50%;/* 居中 */background-position:right bottom;/* 右下角 */background-position:50px;/* 水平 50px,垂直居中 */

规则速记:

  • 第一个值 = 水平(x),第二个 = 垂直(y)
  • 正值 → 右下,负值 → 左上
  • 单值 → 水平,垂直默认center
  • 关键词:top/ bottom/ left/ right/ center,可组合

百分比的机制比较绕:图像自身的N% 点​ 对齐容器的N% 点。所以50% 50%才是真正居中。

6️⃣ background-attachment:滚动行为

决定背景图是跟着内容走,还是钉在视口上:

body{background-image:url('smiley.gif');background-repeat:no-repeat;background-attachment:fixed;}
行为
scroll默认值,背景随元素内容滚动
fixed相对于视口固定,产生"钉住"效果,常用于全屏背景
local相对于元素内容固定,内容滚动时背景跟着滚(用在可滚动容器内)

fixed是实现视差滚动和"始终可见的背景图"的关键。

7️⃣ background:简写属性

把所有背景属性写在一起,省代码:

.box{background:#cccurl(./images/3.webp)no-repeat center/cover fixed;}

通用写法:

background: color image repeat attachment position/size;

注意事项:

  1. 顺序不严格,但position/size必须用/连写,且position在前、size在后——这是唯一必须固定顺序的一对
  2. background-color只能出现在最后一层(多背景时),因为整个元素只有一种底色
  3. 没写的属性取默认值,所以简写会覆盖前面的单属性——推荐先写简写,再写需要覆盖的单属性
  4. 多背景用逗号分隔每层,每层的子属性也可分别指定
background:url(star.png)no-repeat left top / 50px,url(bg.jpg)no-repeat center / cover;

🔧 一个综合示例

.hero{width:100%;height:500px;background:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url("hero.jpg")no-repeat center / cover fixed;background-color:#333;/* 兜底色 */}

叠加了渐变遮罩 + 大图 + 视差 + 兜底色,是落地页横幅的经典写法。

易踩的坑总结

  • ❌ 以为background-size: 50%是图片原始尺寸的 50% → 实际是元素尺寸的 50%
  • ❌ 简写里把positionsize写反 → 必须用pos/size
  • ❌ 多背景忘了background-color只能放最后一层
  • cover想"完整显示图片" → 应该用contain
  • ❌ 可滚动div里想背景跟着内容走 → 用local而非scroll

属性速查表

.box{background-color:#fff;background-image:url(img.png);background-repeat:no-repeat;background-position:center;background-size:cover;background-attachment:fixed;/* 等价于 ↓ */background:#fffurl(img.png)no-repeat fixed center/cover;}

掌握这 7 个属性,95% 的背景需求都能搞定。剩下的 background-clip和 background-origin用于控制"背景画到哪"和"定位基准",在高级布局里再用不迟。

读者互动:

  • 如果你觉得文章有待改进,请在评论区留言,我会认真考虑每一条建议。
  • 如果觉得文章有帮助,欢迎点赞鼓励
  • 想与我共同进步,欢迎关注我

💬 感谢各位读者的支持与关注!期待与大家一起在前端开发的道路上共同进步!🎉

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/18 10:41:49

图形推理必做100题答案|图推专项|解析

图形推理必做100题答案|图推专项|解析 图形推理是行测判断推理中出题规律性强、提分空间大的题型。本资料精选图形推理必做100道高频真题,涵盖对称性、旋转翻转、笔画数、封闭区域、叠加消去、平移规律等核心考点,每题配有详细答案与解题思路分析。资料按…

作者头像 李华
网站建设 2026/6/18 10:36:15

基于NXP Layerscape平台构建PKCS#11安全加密栈与Linux内核驱动优化实战

1. 项目概述与核心价值在嵌入式系统开发,尤其是网络设备、工业网关和物联网边缘计算节点这类对安全性和性能有双重高要求的领域,我们常常面临一个核心矛盾:如何在不牺牲系统吞吐量的前提下,确保密钥管理、数据加解密等核心安全操作…

作者头像 李华
网站建设 2026/6/18 10:33:00

学习率调优实战:从梯度下降原理到可视化诊断

1. 为什么学习率是梯度下降里最该亲手调、最不能交给“默认值”的参数 我带过不少刚学机器学习的朋友,也审过几十份算法岗的实习代码。发现一个特别普遍的现象:很多人写完 model.fit() 就以为万事大吉,或者直接抄网上教程里的 learning_ra…

作者头像 李华
网站建设 2026/6/18 10:32:00

使用Frida绕过Android App SSL证书校验实现闲鱼抓包

1. 项目概述:为什么闲鱼App抓包这么难?如果你尝试过用Charles、Fiddler或者Burpsuite去抓取闲鱼App的网络请求,大概率会碰一鼻子灰。你会发现,要么请求根本不到达你的抓包工具,要么就是一堆看不懂的乱码,或…

作者头像 李华
网站建设 2026/6/18 10:30:09

时间序列预测的四大基石:故事、大模型、因果与不确定性

1. 这不是一篇讲“猫”的时间序列文章——但猫确实帮我们看清了预测的本质你点开这个标题,第一反应可能是:时间序列预测?大语言模型?因果推断?再加一只猫?这组合是不是太跳脱了?我第一次看到它时…

作者头像 李华
网站建设 2026/6/18 10:25:01

医疗AI落地实战:从影像诊断到手术导航的临床闭环

1. 项目概述:当AI不再是PPT里的配图,而是手术室里多盯了三秒的影像系统“How AI Applications are changing Healthcare”——这个标题乍看像学术会议海报上的一行副标题,但过去三年我在三甲医院信息科、医学影像AI创业公司和基层慢病管理平台…

作者头像 李华