Derzeit wird eine browserbasierte SVG-Anwendung erstellt. Innerhalb dieser App können verschiedene Formen vom Benutzer gestaltet und positioniert werden, einschließlich Rechtecke.
Wenn ich a stroke-width
auf ein SVG- rect
Element von beispielsweise anwende 1px
, wird der Strich rect
von verschiedenen Browsern auf unterschiedliche Weise auf den Versatz und den Einschub des Strichs angewendet . Dies erweist sich als problematisch, insbesondere wenn ich versuche, die äußere Breite und die visuelle Position eines Rechtecks zu berechnen und neben anderen Elementen zu positionieren.
Beispielsweise:
- Firefox fügt einen 1-Pixel-Einschub (unten und links) und einen 1-Pixel-Versatz (oben und rechts) hinzu.
- Chrome fügt einen 1-Pixel-Einschub (oben und links) und einen 1-Pixel-Versatz (unten und rechts) hinzu.
Meine bisher einzige Lösung wäre, die tatsächlichen Ränder selbst zu zeichnen (wahrscheinlich mit dem path
Werkzeug) und die Ränder hinter dem gestrichenen Element zu positionieren. Aber diese Lösung ist eine unangenehme Problemumgehung, und ich würde es vorziehen, diesen Weg nicht zu gehen, wenn dies möglich ist.
Meine Frage ist also, können Sie steuern, wie eine SVG stroke-width
auf Elementen gezeichnet wird?
paint-order
Parameter, in dem Sie angeben können, dass die Füllung über dem Strich gerendert werden soll, damit Sie die "äußere Ausrichtung" erhalten, siehe jsfiddle.net/hne0kyLg/1