加filter: blur()只是模糊图片自身,无法实现毛玻璃效果,因为毛玻璃需元素半透明+背后真实内容被模糊,而无“背后”可模糊;正确做法是用backdrop-filter配合rgba背景,或通过伪元素复制背景并filter: blur()模拟。

直接用 CSS 的 filter: blur() 就能实现图片模糊效果,但“毛玻璃”不是单纯模糊——它需要背景虚化 + 半透明遮罩叠加,且必须确保容器能透出真实背景(比如滚动时后面的页面内容)。纯 <img> 标签自身无法实现毛玻璃,得靠容器结构和层叠控制。
为什么 <img> 加 filter: blur() 不等于毛玻璃
单独对图片加 filter: blur(8px) 只会让这张图自己变糊,它背后如果是白色背景或父容器色块,就只是“一张糊图”,没有“透过玻璃看后面内容”的感觉。毛玻璃(glassmorphism)的核心是:元素自身半透明 + 背景被模糊 + 背景必须是真实可变的(如 body 滚动内容)。
- 常见错误:给
<img>直接加blur()和opacity: 0.7,结果糊的是图本身,底下一片白 - 正确思路:把图片作为背景(
background-image),再用伪元素或额外容器做模糊层 - 关键限制:模糊层不能脱离文档流背景,否则 blur 无源可取;
backdrop-filter是更接近原生毛玻璃的方案,但兼容性需留意
用 backdrop-filter 实现真·毛玻璃背景(推荐)
backdrop-filter 会模糊元素「背后」的真实内容(比如 body 里的文字、滚动中的区块),是目前最符合毛玻璃定义的 CSS 属性。但它只对透明区域生效,所以容器必须设 background-color: rgba(255,255,255,0.1) 这类带 alpha 的色值。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
.glass-card {
background: rgba(255, 255, 255, 0.1);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px); /* Safari 必加 */
border-radius: 12px;
padding: 24px;
}
- 注意:该属性在 Firefox 默认禁用(需用户开启
layout.css.backdrop-filter.enabled),移动端 iOS Safari 全支持,Android Chrome 79+ 支持 - 不要试图对
<img>标签本身用backdrop-filter——它没“背后”,只会无效 - 如果想让某张图作为毛玻璃区域的“基底背景”,得把它设为父容器的
background-image,再在子层上用backdrop-filter
兼容旧浏览器:用双层伪元素模拟模糊背景
当 backdrop-filter 不可用时,可以手动复制背景图并模糊,再通过定位叠加。本质是“伪造”背后内容:
.glass-container {
position: relative;
background: url('scene.jpg') center/cover;
}
.glass-container::before {
content: '';
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
background: inherit;
filter: blur(12px);
z-index: -1;
}
.glass-container::after {
content: '';
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
background: rgba(255, 255, 255, 0.12);
z-index: -1;
}
- 必须用
background: inherit确保伪元素复用父容器背景图,否则模糊的是空画布 -
z-index: -1是关键,让模糊层沉到底部,内容层自然浮在上面 - 性能提示:大图 + 高强度
blur()在低端 Android 上可能掉帧,建议blur()值不超过 12px
真正难的不是写几行 CSS,而是判断场景:你要模糊的是“静态图”还是“动态背景”?是否要随滚动实时虚化?有没有 Safari 15.4 以下的兼容要求?这些决定了该选 backdrop-filter 还是双伪元素方案——而后者一旦忘了 inherit 或写错 z-index,就只剩一层白蒙蒙的色块。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










