Сделайте ширину границы svg постоянной, несмотря на масштаб изображения [дубликат]

Добавление из Brad, тела, которое вам нужно будет вызвать body.toString () и поместить его как тело запроса.

80
задан wxs 19 August 2009 в 22:08
поделиться

1 ответ

Вы можете использовать свойство vector-effect, установленное в non-scaling-stroke, см. документы . Другой способ - использовать transform(ref) .

Это будет работать в браузерах, которые поддерживают эти части из SVG Tiny 1.2, например Opera 10. Резервный включает в себя запись небольшого скрипта в сделайте то же самое, в основном инвертируя CTM и применяя его к элементам, которые не должны масштабироваться.

Если вы хотите более резкие линии, вы также можете отключить сглаживание (shape-rendering=optimizeSpeed или shape-rendering=crispEdges) и / или играть с позиционированием.

100
ответ дан Zach Saucier 29 August 2018 в 01:09
поделиться
  • 1
    К сожалению, это приложение XUL, и пока оно не поддерживает векторный эффект. Ну что ж. – wxs 20 August 2009 в 15:22
  • 2
    Это должно появиться в Firefox 15, все будет хорошо, поэтому вы сможете использовать его, как только вы создадите приложение XUL на gecko 15. – Robert Longson 19 May 2012 в 15:04
  • 3
    IE11 по-прежнему не поддерживает свойство vector-effect. Возможно ли добиться того же эффекта, что и vector-effect: non-scaling-stroke в IE11? – merlin 4 August 2014 в 04:48
  • 4
    @merlin да, с js можно эмулировать это в IE. – Erik Dahlström 4 August 2014 в 09:45
  • 5
    @merlin клонирует элемент (установка fill в none и наоборот для stroke), compute & amp; установите соответствующие преобразования (один для части заполнения и один для части хода). Конечно, это будет немного беспорядочно, но это так - вы также можете попросить Microsoft добавить поддержку для нее. В любом случае, я думаю, ваш вопрос заслуживает того, чтобы быть собственным вопросом. – Erik Dahlström 4 August 2014 в 12:20