SVG tôi đang làm việc có bóng đổ qua bộ lọc feGaussianBlur.Bóng SVG bị cắt
Bản thân bóng được hiển thị chính xác nhưng bị cắt ở các cạnh trên cùng và dưới cùng.
Giống như vậy:
Các SVG trong câu hỏi là:
<?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>
Các cắt xén dường như xảy ra một cách nhất quán trong Chrome (30), Firefox (25), và Opera (12).
Tôi có thể thấy rằng nó không phải là giới hạn hộp xem vì nó được đặt thành 600x700.
Tôi cũng có thể nhìn thấy trong DevTools thanh tra khung giới hạn của < path> yếu tố, và nó gần như là nếu đó là những gì cắt bóng:
Nếu đó là trường hợp:
- Tại sao bóng chỉ cắt theo chiều dọc và không theo chiều ngang?
- Làm thế nào để làm việc xung quanh nó, để nó không bị cắt bớt như thế này?
Nếu đó không phải là hộp giới hạn, điều gì gây ra điều này và cách tránh việc cắt bớt này?
Ah, rất thú vị. Không có ý tưởng về khu vực của bộ lọc, nhưng nhìn thấy nó trong spec bây giờ. – kangax
Làm thế nào bạn sẽ thiết lập thuộc tính y và thuộc tính chiều cao của bộ lọc nếu bạn không biết bóng của bạn sẽ lớn như thế nào trước? Bạn chỉ cần phải thiết lập điều này trên bay, hoặc là nó có thể nói "Tôi muốn bóng của tôi để không bao giờ bị cắt bỏ, không có vấn đề lớn như thế nào?" –
Vâng, bạn có thể tạo một vùng bóng mặc định rất lớn, nhưng điều đó cũng sẽ chiếm bộ nhớ. Bóng rất lớn cũng rất hiệu suất chuyên sâu, vì vậy tốt hơn để tránh chúng. –