【发布时间】:2015-01-15 13:48:58
【问题描述】:
IE 10+ 上的 SVG 过滤器的属性“filterUnits”似乎存在问题。这对(几乎)垂直或水平线上的阴影过滤器有影响,请参见以下示例:
<svg height="500" width="500">
<defs>
<filter id="f1" filterUnits="userSpaceOnUse" width="300%" height="300%">
<feOffset result="offOut" in="SourceGraphic" dx="5" dy="5" />
<feGaussianBlur result="blurOut" in="offOut" stdDeviation="3" />
<feBlend in="SourceGraphic" in2="blurOut" mode="normal" />
</filter>
</defs>
<line x1="10" y1="205" x2="400" y2="200"
style="stroke:rgb(255,0,0); stroke-width:20" filter="url(#f1)" />
<line x1="200" y1="50" x2="220" y2="300"
style="stroke:rgb(255,0,255);stroke-width:20" filter="url(#f1)" />
</svg>
此示例在 Chrome 和 Firefox 中完美运行,但在 IE 10、11 中部分行被剪裁。似乎 IE 不支持属性值 filterUnits="userSpaceOnUse"。
根据微软(http://msdn.microsoft.com/en-us/library/ff934701%28v=vs.85%29.aspx 和http://msdn.microsoft.com/en-us/library/ie/hh773402%28v=vs.85%29.aspx)的说法,IE9 不支持filterUnits,但 IE10+ 支持。
这个问题有解决办法吗?
【问题讨论】:
标签: internet-explorer svg svg-filters