当前位置: 首页 > news >正文

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用于控制"背景画到哪"和"定位基准",在高级布局里再用不迟。

读者互动:

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

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

http://www.jsqmd.com/news/1035415/

相关文章:

  • 简单三步解锁Unity全功能:UniHacker跨平台许可证管理终极指南
  • Elsevier Tracker:3分钟实现学术审稿进度的终极可视化监控
  • 上海高端腕表回收,一对一专业评估价格透明公道 - 讯息早知道
  • Windows Server 2025 OVF (2026 年 6 月更新) - VMware 虚拟机模板
  • ZiP套娃过程
  • FreeMove三分钟搞定:彻底解决C盘爆满的目录迁移终极方案
  • 2026西安厨房天花板漏水维修防水公司TOP4:高性价比横向测评+业主避坑指南 专业防水公司排名推荐(2026年5月防水补漏最新TOP权威排名) - 冠盾建筑修缮
  • 全州县装修公司哪家靠谱?2026 本地口碑装企整理 - 装修新知
  • 全网推广平台深度解析:一站式全域营销的底层逻辑与实践路径 - GEORANK
  • Docker 命名卷与绑定挂载详解:到底该用哪个?
  • Codex 国内下载安装教程:搭配 CC Switch 接入国产deepseek大模型,无需折腾配置
  • RimWorld模组管理终极指南:用RimSort高效管理上百个模组
  • SLM算法在OFDM系统上的PAPR抑制 — MATLAB仿真
  • 摄剪智变,启映未来|黎明奥杰摄影培训,打造AI影像实战新生态 - 猫头鹰AI推广
  • 破解汉绣商务礼品急单采购痛点:3CS方法论如何实现高效交付? - 资讯快报
  • 抚州南城县黄金回收避坑指南:套路拆解+本地三大靠谱品牌全攻略 - 衡金阁
  • 数字化知识产权管理落地案例:本地化部署的实践观察
  • 全网营销推广深度解析:打破流量孤岛,构建企业增长新闭环 - GEORANK
  • 用 AI 改造一个 Flink SQL 项目:从脚本提交到数据同步平台
  • 2026年上海网约车租赁公司怎么选?双证合规+新能源+无隐形收费的靠谱服务商完全指南 - 优质企业观察收录
  • 10-杨逢昌:6S检查表设计——一张好表胜过十次口头强调,附评分标准
  • 2026年贵阳铁签烤肉怎么选?花果园、南明区正宗老贵阳烤肉店深度横评 - 优质企业观察收录
  • 响应谱分析-理论
  • 2026年6月盐城亭湖区黄金回收行情与变现策略 - 上门黄金回收
  • 生产级机器学习系统设计:从模型部署到契约化治理
  • 数据模型如何应对黑天鹅事件:从脆弱性到反脆弱性
  • CANN GE图编译器架构原理:从计算图优化到多流并行与内存复用技术内幕
  • 开店必看!成都火锅底料厂家测评避坑指南 - 资讯报道
  • 2026全球EMBA行业偏向及中立选型测评分析
  • 青岛卖黄金别踩坑 2026年6月回收门店盘点 - 余生黄金回收