Actuellement en construction d'une application SVG basée sur un navigateur. Dans cette application, différentes formes peuvent être stylisées et positionnées par l'utilisateur, y compris des rectangles.
Lorsque j'applique un stroke-width
à un rect
élément SVG , par exemple 1px
, le trait est appliqué au rect
décalage et à l'encart de de différentes manières par différents navigateurs. Cela s'avère problématique, surtout lorsque j'essaie de calculer la largeur extérieure et la position visuelle d'un rectangle et de le positionner à côté d'autres éléments.
Par exemple:
- Firefox ajoute un encart de 1 px (en bas et à gauche) et un décalage de 1 px (en haut et à droite)
- Chrome ajoute un encart de 1 px (en haut et à gauche) et un décalage de 1 px (en bas et à droite)
Jusqu'à présent, ma seule solution serait de dessiner moi-même les bordures réelles (probablement avec l' path
outil) et de positionner les bordures derrière l'élément tracé. Mais cette solution est une solution de contournement désagréable, et je préférerais ne pas emprunter cette voie si possible.
Donc ma question est, pouvez-vous contrôler comment un SVG stroke-width
est dessiné sur des éléments?
paint-order
paramètre, où vous pouvez spécifier, que le remplissage doit être rendu au-dessus du trait, donc vous obtiendrez «l'alignement extérieur», voir jsfiddle.net/hne0kyLg/1