最佳答案
我正在处理的 SVG 通过 feGaussianBlur
滤波器有一个下拉阴影。
阴影本身显示正确,但在顶部和底部边缘被切断。
像这样:
有问题的圣文森特和格林纳丁斯政府是:
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE svg
PUBLIC '-//W3C//DTD SVG 1.1//EN'
'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
<svg height="600" version="1.1" width="700" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs/>
<filter id="SVGID_0">
<feGaussianBlur in="SourceGraphic" stdDeviation="6.6"/>
<feOffset dx="0" dy="0"/>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<path d="M 0 83 Q 0 83 0 83 Q 0 83 6 79.5 Q 12 76 17 71 Q 22 66 30.5 57.5 Q 39 49 54 36 Q 69 23 82.5 16.5 Q 96 10 120 4.5 Q 144 -1 170.5 0 Q 197 1 218 16.5 Q 239 32 253.5 51 Q 268 70 278 83.5 Q 288 97 299 110 Q 310 123 320 129.5 Q 330 136 338 136.5 Q 346 137 355 129.5 L 364 122" stroke-linecap="round" style="stroke: #005e7a; stroke-width: 30; fill: none; filter: url(#SVGID_0);" transform="translate(50 50)" />
</svg>
在 Chrome (30)、 Firefox (25)和 Opera (12)中,裁剪似乎一直在进行。
我可以看到它不是一个视窗限制,因为它被设置为600x700。
我还可以在 devtools 检查器中看到 <path>
元素的边界框,这几乎就是切断阴影的东西:
如果是这样的话:
如果不是边界框,那么是什么导致了这种情况,以及如何避免这种剪切?