fegaussianblur 是 svg 高斯模糊核心原语,关键参数为 stddeviation(控制模糊强度,支持单/双值及动画)和 in 属性(指定输入源如 sourcegraphic、sourcealpha 等),常与 feoffset、femerge 等组合实现投影、毛玻璃、聚焦提示等效果,现代浏览器兼容良好,但需注意性能限制。

FeGaussianBlur 是 SVG 中用于实现高斯模糊效果的核心滤镜原语,其效果自然、性能较好,常用于背景虚化、焦点强调、阴影柔化等场景。关键在于正确配置它的两个核心参数:stdDeviation 和可选的 in 属性。
stdDeviation:控制模糊强度的核心参数
该属性定义高斯函数的标准差,直接决定模糊半径大小。值越大,图像越模糊;为 0 时无模糊(但部分浏览器可能不渲染)。
- 支持单个数值(如
stdDeviation="2"),表示 x/y 方向使用相同模糊度 - 也支持两个空格分隔的数值(如
stdDeviation="2 4"),分别控制水平和垂直方向的模糊程度 - 允许使用 CSS 动画或 SMIL 动画动态修改,例如配合
<animate></animate>实现渐变模糊效果 - 注意:负值无效,非数字字符串会被忽略,浏览器会回退到默认行为(通常为 0)
in 属性:指定被模糊的输入源
它定义了滤镜作用的对象来源,默认是 "SourceGraphic"(原始图形)。合理设置可实现更灵活的效果:
-
in="SourceGraphic":对原始 SVG 元素本身模糊(最常用) -
in="SourceAlpha":先提取 Alpha 通道(透明度),再模糊——适合生成柔和阴影或蒙版边缘 -
in="BackgroundImage"或"BackgroundAlpha":模糊页面背景(需配合filterUnits="objectBoundingBox"和容器设置background) - 也可引用前一个滤镜的输出结果(通过
<femergenode></femergenode>等组合使用)
实际应用中的常见配置模式
多数实用场景下,feGaussianBlur 很少单独使用,而是嵌套在 <filter></filter> 内,配合其他原语增强表现力:
-
柔和投影:先用
SourceAlpha模糊生成阴影轮廓,再用<feoffset></feoffset>偏移,最后<femerge></femerge>叠加到原图 -
毛玻璃效果:对
BackgroundImage应用中等stdDeviation(如 8–12),再降低叠加层透明度 -
聚焦提示:对非目标区域应用较大模糊(
stdDeviation="15"),目标区域保持清晰,形成视觉引导
兼容性与性能提醒
现代浏览器(Chrome、Firefox、Safari、Edge)均完整支持 feGaussianBlur,但在旧版 Safari(≤12)中对 BackgroundImage 支持有限。
- 避免过度大的
stdDeviation值(如 >50),可能导致渲染卡顿或内存占用升高 - 移动端建议控制在
stdDeviation ≤ 12,兼顾效果与流畅性 - 可通过 CSS 的
filter: blur()快速实现类似效果,但 SVG 方式更可控、可动画、可精确绑定到图形局部
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











