6

我需要在 div 上制作模糊效果。我知道对于 Chrome,我可以使用 CSS3 过滤器,对于 IE 和 Firefox,我必须使用 SVG 过滤器。我无法弄清楚为什么我的 SVG 过滤器不能在 IE 10+ 中工作,但在 Firefox 中工作正常?

演示:http: //jsfiddle.net/8pytt/3/

HTML

<div id="container">
    <h1>test</h1>
</div>

<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
   <filter id="blur">
       <feGaussianBlur stdDeviation="5"></feGaussianBlur>
   </filter>
</svg>

CSS

body {
        background: blue;
    }

#container {
    width: 100%;
    height: 500px;
    text-align: center;
    background: blue;
    opacity: .8;
    background-image: -webkit-radial-gradient(circle farthest-side, white, black);
    background-image: -moz-radial-gradient(circle farthest-side, white, black);
    background-image: -o-radial-gradient(circle farthest-side, white, black);
    background-image: -ms-radial-gradient(circle farthest-side, white, black);

    -webkit-filter: blur(5px);
    filter:url('#blur');
}

h1 {
    color: red;
    padding-top: 100px;
}
4

1 回答 1

10

IE 仍然(现在在 11 上)不支持filter:blur(). IE10 支持 SVG 过滤器,但不支持非 SVG 内容。我只想说你可以使用 aforeignObject并将不透明度更改为 rgba 不透明度,就像这样,但事实证明 IE 也不支持foreignObject

因此,您可以将其全部转换为 SVG 或回退到不透​​明度更改或其他内容。有关更多信息,请参见此处链接页面

即使在 Edge 中,CSS 滤镜效果也要求用户允许自定义标志并且不支持该url()功能。

于 2013-11-14T05:47:28.360 回答