blur()

Baseline 已广泛支持

此特性已非常成熟,可在多种设备和浏览器版本上使用。自 ⁨2016 年 9 月⁩以来,它已在各大浏览器中可用。

blur() CSS 函数对输入图像应用高斯模糊。它的结果是<filter-function>

试一试

filter: blur(0);
filter: blur(4px);
filter: blur(1.5rem);
<section id="default-example">
  <img
    class="transition-all"
    id="example-element"
    src="/shared-assets/images/examples/firefox-logo.svg"
    width="200" />
</section>

语法

css
blur()         /* No effect */
blur(0)        /* No effect */

blur(8px)      /* Blur with 8px radius */
blur(1.17rem)  /* Blur with 1.17rem radius */

参数

<length> 可选

指定模糊半径。它定义了高斯函数的标准差值,即屏幕上有多少像素相互融合。因此,值越大,模糊程度越高。值为 0 时,输入保持不变。插值的初始值为 0。百分比值无效。默认值为 0

SVG 滤镜

SVG <feGaussianBlur> 滤镜元素也可用于模糊内容。该滤镜的 stdDeviation 属性最多接受两个值,可以创建更复杂的模糊值。要创建等效的模糊,我们为 stdDeviation 包含一个值。然后可以通过 ID 引用此 SVG 效果

html
<svg role="none">
  <filter id="blur11">
    <feGaussianBlur stdDeviation="1.1" edgeMode="duplicate" />
  </filter>
</svg>

以下声明产生相同的效果

css
filter: blur(1.1px);
filter: url("#blur11"); /* with embedded SVG */
filter: url("folder/fileName.svg#blur11"); /* external svg filter definition */

正式语法

<blur()> = 
blur( <length>? )

示例

此示例显示了三张图像:应用了 blur() 滤镜函数的图像、应用了等效 SVG 模糊函数的图像以及用于比较的原始图像

css
.filter {
  filter: blur(3.5px);
}
html
<svg role="img" aria-label="Flag">
  <filter id="blur">
    <feGaussianBlur stdDeviation="3.5" edgeMode="duplicate" />
  </filter>
  <image
    href="https://mdn.github.io/shared-assets/images/examples/progress-pride-flag.jpg"
    xlink:href="https://mdn.github.io/shared-assets/images/examples/progress-pride-flag.jpg"
    filter="url('#blur')" />
</svg>

规范

规范
滤镜效果模块第 1 级
# funcdef-filter-blur

浏览器兼容性

另见