IE 10+的模糊过滤器

时间:2013-11-14 04:56:22

标签: css internet-explorer css3 filter

我需要对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;
}

1 个答案:

答案 0 :(得分:9)

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

因此,您可以将其全部转换为SVG或回退到不透​​明度更改等。 See herelinked page了解详情。

即使在Edge中,CSS过滤效果也要求用户allow a custom flag并且不支持url()功能。