我需要对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;
}
答案 0 :(得分:9)
IE仍然(现在11)不支持filter:blur()
。 IE10支持SVG过滤器,但不支持非SVG内容。我只想说你可以使用foreignObject
并将不透明度更改为rgba opacity like this,但事实证明IE也不支持foreignObject
。
因此,您可以将其全部转换为SVG或回退到不透明度更改等。 See here和linked page了解详情。
即使在Edge中,CSS过滤效果也要求用户allow a custom flag并且不支持url()
功能。