如何使用CSS仅模糊背景区域而不模糊其中的文字?
实现背景模糊但文字清晰的两种方法
方法一:利用伪元素单独处理背景模糊
这是最常用的方案,把背景和文字分离,只给背景层加模糊效果:
- 给目标区域
#border设置相对定位,确保伪元素能基于它定位 - 用
::before或::after伪元素创建背景层,设置绝对定位覆盖整个区域 - 给伪元素添加背景色(你的绿色背景)和模糊滤镜,再把它的层级设为低于文字
示例代码:
<div id="musteri_yorumlari"> <div id="border"> <p>这里是需要保持清晰的文字内容</p> </div> </div>
#border { position: relative; padding: 2rem; /* 给容器设置内边距,避免文字贴在边缘 */ /* 不要给这个容器加背景色,背景交给伪元素 */ } #border::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #你的绿色值; /* 替换成实际的绿色色值 */ filter: blur(8px); /* 调整模糊程度 */ z-index: -1; /* 把背景层放在文字下方 */ }
方法二:使用backdrop-filter(适合模糊后方内容场景)
如果你的#border是放在其他内容之上,想要模糊它背后的元素,直接用backdrop-filter属性——这个属性只会模糊元素后方的内容,不会影响自身的子元素:
#border { background-color: rgba(你的绿色值, 0.8); /* 建议用半透明色,模糊效果更自然 */ backdrop-filter: blur(8px); padding: 2rem; }
注意:backdrop-filter的兼容性需要留意,现代浏览器基本支持,但旧版浏览器(比如IE)不支持。
内容的提问来源于stack exchange,提问作者Mirza
相关产品推荐
相关产品推荐

