⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

CSS 背景图像

CSS 背景图片详解 · 难度:入门 · +10XP

CSS 背景图片详解

background-image 是 CSS 中最常用的背景属性之一,用于为元素设置一张或多张背景图片。配合其他背景属性,可以创建出丰富的视觉效果,从简单的装饰到复杂的叠加效果。

基本用法

/* 单张背景图片 */
.hero {
  background-image: url('/images/hero-bg.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  height: 400px;
}

/* 简写形式 */ .hero { background: url('/images/hero-bg.jpg') center/cover no-repeat; height: 400px; }

多张背景图片叠加

CSS 支持在同一个元素上叠加多张背景图片,用逗号分隔。先定义的图片在上层:

/* 渐变遮罩 + 背景图片 */
.overlay-banner {
  background-image:
    linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.3)),
    url('/images/banner.jpg');
  background-size: auto, cover;
  background-position: center;
  height: 500px;
}

/* 三张图片叠加:纹理 + 图案 + 渐变 */ .textured { background-image: url('/images/texture.png'), url('/images/pattern.svg'), linear-gradient(to right, #ff6b6b, #4ecdc4); background-repeat: repeat, no-repeat, no-repeat; background-size: 200px, contain, cover; }

背景图片尺寸 background-size

行为适用场景
cover缩放覆盖整个容器(可能裁剪)全屏横幅、Hero 区域
contain缩放至完整显示(可能有留白)产品展示图、Logo 背景
100% auto宽度撑满,高度自适应横向拼接图片
auto 100%高度撑满,宽度自适应竖向拼接图片
200px 150px固定尺寸重复纹理、图标背景

背景定位 background-position

/* 关键字定位 */
.bg { background-position: center center; }
.bg { background-position: top right; }
.bg { background-position: left bottom; }

/* 精确像素定位 */ .bg { background-position: 50px 100px; } /* 左 50px, 上 100px */

/* 百分比定位 */ .bg { background-position: 50% 50%; } /* 居中,等价于 center center */

背景固定(视差效果)

.parallax {
  background-image: url('/images/scene.jpg');
  background-attachment: fixed;   /* 背景固定不随滚动 */
  background-size: cover;
  background-position: center;
  height: 100vh;
}

渐变背景

background-image 不仅支持图片,还可以使用渐变:

/* 线性渐变 */
.gradient-hero {
  background-image: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

/* 径向渐变 */ .spotlight { background-image: radial-gradient(circle at center, #fff 0%, #333 80%); }

/* 图片 + 渐变组合 */ .hero-fancy { background-image: linear-gradient(to right, rgba(0,0,0,0.8), transparent 60%), url('/images/hero.jpg'); background-size: cover; }

背景属性速查表

属性作用示例
background-image设置背景图片或渐变url('bg.jpg')
background-size背景尺寸cover / contain / 200px 100px
background-position背景定位center / top right / 50% 50%
background-repeat背景重复no-repeat / repeat-x / repeat-y
background-attachment背景附着scroll / fixed / local
background-origin背景定位原点padding-box / border-box / content-box
background-clip背景裁剪区域border-box / padding-box / content-box
background-blend-mode混合模式multiply / overlay / screen

???? 练习

  1. 使用 background-image 和 cover 创建一个全屏 Hero 横幅
  2. 叠加半透明渐变遮罩在一张背景图片上
  3. 使用 background-attachment: fixed 实现视差滚动效果
  4. 为元素设置两张背景图(纹理 + 渐变)并分别控制其重复和尺寸
  5. 尝试 background-blend-mode 让背景图与背景色混合

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 122 篇
0 完成
🔥 0