Код: Выделить всё
Предполагается, что приведенный выше SVG будет иметь две строки по семь строк в каждой. Нижний ряд без фильтра отображается так, как предполагалось. В верхнем ряду с фильтром размытия по Гауссу отсутствует половина предпоследней строки и вся последняя строка.
Похоже, это происходит потому, что область фильтра получает свой размер из viewBox, но его позиция привязана к началу координат. В спецификации сказано следующее:
Начальное значение для x и y составляет -10%.
Начальное значение для ширина и высота равны 120%.
Это соответствует ширине 200 и обрезанию прямо через середину линии по координате x 220. . Еще одним доказательством этого является то, что если я добавлю 1000 к каждой координате x, то отфильтрованные строки полностью исчезнут, но нефильтрованные будут в порядке:
Код: Выделить всё
Я знаю, что могу обойти эту проблему, рассчитав для себя -10% относительно начало координат viewBox (60 - 0,1*200 = 40 для первого примера и 1060 - 0,1*200 = 1040 для второго примера), а затем установив его как атрибут x в фильтре, но такое ощущение, что это дублирует информацию и создает ненужную работу, если я позже захочу изменить viewBox. Есть ли лучший способ это исправить?
Подробнее здесь: https://stackoverflow.com/questions/787 ... wbox-since