【前端高级特效】使用 CSS 实现毛玻璃模糊背景效果(含完整源码讲解)

【前端高级特效】使用 CSS 实现毛玻璃模糊背景效果(含完整源码讲解)

🌈 一、前言

在现代网页设计中,“毛玻璃(Frosted Glass)”效果几乎是高端 UI 的标配。
无论是登录弹窗、信息卡片、还是仪表盘背景,它都能带来优雅的层次感与视觉柔化效果。

本篇文章将通过 纯 CSS 实现毛玻璃模糊背景特效,无需任何 JavaScript,也不依赖额外库。
代码短小、兼容性强、效果高级,非常适合前端开发者收藏!


🖼️ 二、效果预览

最终效果如下图所示(可自行运行查看动态效果):

背景图片清晰,而中间的内容区域呈现半透明模糊的“玻璃”质感,文字浮在上方清晰可见。

🧩 三、完整源码(可直接复制运行)

以下是完整 HTML + CSS 源码,你可以直接复制运行(放在同目录的 image/4.jpg 即可)。

<!DOCTYPE html> <!--RGBA/HSLA颜色--> <!--把文本层所覆盖的那部分图片区域作模糊处理--> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> <meta name="description"> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> html { width: 100%; height: 100%; /*垂直水平居中*/ display: flex; justify-content: center; align-items: center; margin: 0; } body, main::before { /*背景图*/ background: url(./image/4.jpg) 0 / cover fixed; z-index: -2; } main { width: 800px; height: 300px; display: flex; justify-content: center; align-items: center; border-radius: 10px; position: relative; background: hsla(0, 0%, 100%, .3); overflow: hidden; /*把多余的模糊区域裁切掉*/ } /*伪元素 由于我们不能直接对元素本身进行模糊处理,就对一个伪元素进行处理,然后将其定位到元素的下层,它的背景将无缝 匹配<body>的背景*/ main::before { content: ''; position: absolute; /*所有偏移量置为0,这样将它可以完整地覆盖到<main>元素之上*/ top: 0; right: 0; bottom: 0; left: 0; filter: blur(20px); /*让伪元素相对其宿主元素的尺寸再向外扩大至少30px(即它的模糊半径)*/ margin: -30px; /*background: rgba(255, 0, 0, .5);*/ /*上 右 下 左 */ z-index: -1; } </style> </head> <body> <main> <blockquote> "The only way to get rid of a temptation is to yield to it .<wbr> Resist it, and your soul grows sick with longing for the<wbr> things it has forbidden to itself, with desire for what its<wbr> monstrous laws have made monstrous and unlawful." <footer>—— <cite> Oscar Wilde, The Picture of Dorian Gray </cite> </footer> </blockquote> </main> </body> </html>

🧠 四、实现原理详解

1️⃣ 模糊处理的核心:filter: blur()

filter: blur(20px) 是 CSS 滤镜功能之一,用于对元素内容进行高斯模糊。
但需要注意:

不能直接对主内容进行模糊,否则文字也会变糊。

所以我们引入 伪元素(::before 来专门负责“模糊背景”,而真正的文字内容在其上层展示。


2️⃣ 为什么使用 main::before

因为 main 是内容容器,我们无法单独模糊其背景(CSS 目前不支持“仅模糊背景,不影响子元素”)。
于是创建一个伪元素:

main::before { position: absolute; filter: blur(20px); z-index: -1; } 

这样它会:

  • 完全覆盖 main 元素;
  • 背景与 body 一致;
  • 模糊生效;
  • 不影响文字层。

3️⃣ 解决模糊边缘的“剪切问题”

模糊效果会向外扩散,如果刚好被容器裁掉,就会产生边缘硬线。
解决方法:扩大伪元素范围,使模糊区域完整:

margin: -30px; 

这里的 30px 通常略大于模糊半径。


4️⃣ 半透明白背景叠加效果

background: hsla(0, 0%, 100%, .3); 

通过 hsla 色彩模型实现半透明白底:

  • hsla(0, 0%, 100%, .3) 表示:白色、透明度 30%
  • 与模糊背景叠加后形成柔和的“玻璃感”

🎨 五、细节优化建议

优化项说明示例
边框与阴影增强立体感border: 1px solid rgba(255,255,255,0.3); box-shadow: 0 4px 20px rgba(0,0,0,0.2);
背景过渡模糊动态变化transition: filter .3s ease;
主题变量控制支持自定义模糊强度--blur-radius: 20px; filter: blur(var(--blur-radius));

🧾 六、兼容性与替代方案

现代浏览器(Chrome、Edge、Firefox、Safari)均支持 filter: blur()
部分 Safari 或移动端也支持更高级的 backdrop-filter

backdrop-filter: blur(20px); 

如果项目允许,可直接使用该属性获得更自然的玻璃质感。


🧾 七、知识要点总结

技术点说明
filter: blur()高斯模糊滤镜
::before 伪元素模糊背景的载体
hsla 半透明叠加玻璃质感增强
margin: -30px防止模糊被裁切
z-index 层级控制确保文字清晰可见

通过以上技巧,我们就能在纯 CSS 环境下实现炫酷的 毛玻璃模糊背景特效,这在登录页、卡片、导航栏等场景中都非常实用。


💬 八、示例场景推荐

  • 登录/注册弹窗
  • 卡片式信息展示
  • 背景叠层导航栏
  • 数据仪表盘半透明层
  • 高端落地页标题区

🌟 九、结语

通过本文你不仅能掌握 filter 模糊滤镜的高级用法,还能深入理解伪元素在视觉层的强大作用。
无论是静态网页还是动态组件(如 React/Vue 中的卡片组件),这种技巧都能让你的 UI 立刻提升一个档次。

Read more

深度解析KBQA常用数据集:WebQSP与CWQ

深度解析KBQA常用数据集:WebQSP与CWQ 一、引言 知识图谱问答(KBQA)是自然语言处理领域的关键任务,其核心挑战在于将自然语言问题转换为可执行的逻辑形式(如SPARQL查询)并从知识图谱中获取答案。WebQSP和CWQ是当前KBQA研究中最具代表性的两个数据集,分别覆盖了从多跳到复杂组合性问题的全场景。本文将从数据形式、标注特点、核心挑战等维度对两者进行深度解析,并对比其在KBQA研究中的定位与价值。 二、WebQSP数据集:多跳推理的基石 2.1 数据集概况 * 全称:WebQuestionsSP(扩展自WebQuestions) * 来源:基于Freebase知识图谱构建,由Berant等人于2013年提出,后经扩展支持多跳推理。 * 规模:训练集约4,700条,测试集约2,000条。 * 问题类型:多跳关系推理(最多4跳),需结合实体、关系和约束条件。 2.2 数据形式详解(基于WebQSP-train实例深度解析) WebQSP的每条数据以JSON格式组织,包含从原始问题到逻辑形式、推理路径、答案的完整标注。以下结合WebQTrn-0实例(关于

清明后,致所有准备面试的前端人...

金三银四已然过半,清明假期结束,2026年的Q2正式按下启动键。如果你此刻还在犹豫“现在开始准备是否来得及”,不妨把这个问题换成另一个:从今天开始,到5月初,你还有整整四周。 四周时间,足够一个前端开发者完成一轮完整的面试体系搭建——从HTML/CSS的底层渲染机制,到JS的原型链与事件循环,再到Vue/React的响应式原理与核心源码思路,甚至包括一道手写Promise、一道防抖节流、一道算法中的二叉树层序遍历。 关键是,你需要的不是零散的八股文背诵,而是一份经过验证的、覆盖高频考点的题库作为练习主线。 👇下面涵盖HTML/CSS、JS原理、Vue/React框架、TS、工程化、网络与安全等模块... 链接: https://github.com/encode-studio-fe-coder/natural_traffic/wiki/scan_material3 JavaScript(323题) 1.不会冒泡的事件有哪些? 2.mouseEnter 和 mouseOver 有什么区别?

5分钟部署GLM-4.6V-Flash-WEB,单卡实现多模态AI应用

5分钟部署GLM-4.6V-Flash-WEB,单卡实现多模态AI应用 你有没有试过这样一种场景:刚拍下一张超市货架照片,想立刻知道“第三排左数第二个商品的保质期还剩几天”,却只能打开手机相册反复放大、手动识别——而旁边的朋友已经用AI工具三秒读完整张图并给出答案。这不是科幻电影,而是GLM-4.6V-Flash-WEB正在让这件事变成现实。 它不依赖云端API调用,不用等模型加载十分钟,更不需要A100集群和运维工程师。一块RTX 4060 Ti显卡,一条命令,五分钟内,你就能拥有一个能看图、会思考、懂提问的本地多模态助手。它不是实验室里的演示原型,而是真正为“今天就要上线”设计的开箱即用镜像。 这篇文章不讲论文公式,不堆参数指标,只聚焦一件事:怎么在最短时间里,把一个能理解图像+回答问题的AI,稳稳跑在你自己的机器上,并马上用起来。 1. 为什么是GLM-4.6V-Flash-WEB?轻量≠妥协 很多人一听“轻量级多模态模型”,第一反应是“那效果肯定打折扣”。但GLM-4.6V-Flash-WEB打破了这个惯性认知——它没有牺牲核心能力,只是把冗余的部分全部砍掉。 它

OpenClaw 中 web_search + web_fetch 最佳实践速查表

OpenClaw 中 web_search + web_fetch 最佳实践速查表

OpenClaw 中 web_search + web_fetch 最佳实践速查表 摘要:本文帮助读者明确 OpenClaw 网络搜索工具和不同搜索技能的的职责边界,理解“先搜索、再抓取、后总结”的最佳实践,并能更稳定地在 OpenClaw 中使用 tavily-search 与 web_fetch 完成网络信息搜索任务。主要内容包括:解决 OpenClaw 中 web_search、tavily-search、web_fetch、原生 provider 与扩展 skill 容易混淆的问题、网络搜索能力分层说明、OpenClaw 原生搜索 provider 与 Tavily/Firecrawl 扩展 skill 的区别、标准工作流、提示词模板、