⚡ 编程实验室🏗️ 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 背景模糊 backdrop-filter

学习backdrop-filter · 难度:进阶 · +15XP

CSS 背景模糊 backdrop-filter

backdrop-filter 可以对元素后方区域(元素背后的内容)应用滤镜效果,是实现毛玻璃(Glassmorphism)效果的核心属性。与 filter 不同,它作用于元素的下层,而非元素自身。

基本语法

.glass {
  backdrop-filter: blur(10px);
}

/* 多重效果 */ .backdrop { backdrop-filter: blur(10px) brightness(0.8) saturate(150%); }

可用的滤镜函数

函数说明
blur()背景模糊(最常用)
brightness()背景亮度
contrast()背景对比度
grayscale()背景灰度
saturate()背景饱和度
sepia()背景褐色
hue-rotate()背景色相旋转
invert()背景颜色反转
opacity()背景透明度

毛玻璃效果(Glassmorphism)

.glass-card {
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

导航栏毛玻璃

.navbar {
  position: fixed;
  top: 0; left: 0; right: 0;
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(10px) saturate(180%);
  /* macOS/iOS 风格半透明导航栏 */
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  z-index: 1000;
}

/* 暗色主题 */ @media (prefers-color-scheme: dark) { .navbar { background: rgba(30, 30, 30, 0.7); backdrop-filter: blur(10px) saturate(180%); border-bottom: 1px solid rgba(255, 255, 255, 0.1); } }

模态弹窗背景模糊

.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
}

抖音/Vue 风格毛玻璃侧边栏

.sidebar {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(30px) saturate(130%);
  -webkit-backdrop-filter: blur(30px) saturate(130%); /* Safari */
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}

注意事项

  1. 元素自身必须部分透明(否则看不到背后)
  2. 可以使用 background: rgba() 实现半透明背景
  3. 应用到 <html>backdrop-filter 不会生效
  4. 大量模糊可能影响滚动性能,谨慎使用在频繁重绘区域
  5. Firefox 需开启 layout.css.backdrop-filter.enabled(最新版已默认支持)
  6. Safari 仍需 -webkit-backdrop-filter 前缀

性能建议

.glass-optimized {
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(10px);
  /* 避免在 backdrop-filter 元素上使用大量动画 */
  /* 避免嵌套多个 backdrop-filter 元素 */
  transform: translateZ(0);  /* 创建合成层,启用 GPU 加速 */
}

backdrop-filter 是现代 UI 设计的重要工具。从 iOS 的控制中心到 macOS 的窗口边框,毛玻璃效果已经成为高端界面的标志性设计语言。

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

🏆 学习排行

加载中...

📊 统计

📖 122 篇
0 完成
🔥 0