一个div元素的模糊效果

85

能否在 div 元素上添加高斯模糊效果?如果可以,如何实现?


1
你目前找到了什么?你在谷歌上搜索过这个问题吗? - Erty Seidohl
可能是HTML5高斯模糊效果的重复问题。 - Chris Laplante
7个回答

185

我认为这就是您在寻找的内容?如果您想要向div元素添加模糊效果,您可以直接通过CSS滤镜来实现--请参见示例:http://jsfiddle.net/ayhj9vb0/

div {
    -webkit-filter: blur(5px);
    -moz-filter: blur(5px);
    -o-filter: blur(5px);
    -ms-filter: blur(5px);
    filter: blur(5px);
    width: 100px;
    height: 100px;
    background-color: #ccc;
}

正是我需要的。 - Muhammad Haseeb

9

您可以执行以下操作:

  1. filter: blur(10px)

  2. backdrop-filter: blur(10px)

  3. 如果您想要模糊div元素的边缘,请使用box-shadow。

    box-shadow: 10px 20px 20px grey;

20px的第三个值设置了模糊值,该值越大,模糊程度就越高。

您可以使用其中任何一个方法,但请注意,backdrop-filter在Firefox和Internet Explorer浏览器中不受支持。


8

7
它在Chrome上有漏洞,加载页面也很慢。 - Murhaf Sousli


5

I got blur working with SVG blur filter:

CSS

-webkit-filter: url(#svg-blur);
filter: url(#svg-blur);

SVG

<svg id="svg-filter">
    <filter id="svg-blur">
        <feGaussianBlur in="SourceGraphic" stdDeviation="4"></feGaussianBlur>
    </filter>
</svg>

工作示例:

https://jsfiddle.net/1k5x6dgm/

请注意 - 这将无法在IE版本中运行


4
元素的背景模糊可以通过使用 backdrop-filter 实现。

请按照以下方式使用:

.your-class-name {
   backdrop-filter: blur(5px);
}
下方的所有元素都会因使用此功能而被模糊。
注意:目前并非每个浏览器都支持此功能。

3

内联 CSS:

style="filter: blur(3px);"

使用class的外部css:

.div-cls{
    filter: blur(3px);
}

同时也得到了主流浏览器的支持[1]。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接