Vous pouvez contrôler la façon dont une SVG de la largeur du trait est dessiné?

Actuellement à la construction d'un navigateur basé sur le format SVG application. Au sein de cette application, différentes formes peuvent être de style et positionnés par l'utilisateur, y compris des rectangles.

Lorsque j'applique un stroke-width à un SVG rect élément de dire 1px, le trait est appliqué à la rects’décalage et l'encart de différentes manières par les différents navigateurs. Cela se révèle être gênant, surtout quand j'ai essayer de calculer la largeur externe et visuelle de la position d'un rectangle et placez-la à côté d'autres éléments.

Par exemple:

  • Firefox ajoute 1px inset (en bas et à gauche), et de 1px de décalage (en haut et à droite)
  • Chrome ajoute 1px inset (en haut et à gauche), et de 1px de décalage (en bas et à droite)

Ma seule solution jusqu'à présent dessiner les frontières réelles moi-même (probablement avec l' path outil) et la position des frontières et de la caresse de l'élément. Mais cette solution est une mauvaise solution, et je préfère ne pas aller en bas de cette route si possible.

Donc ma question est, pouvez-vous contrôler la façon dont une SVG de stroke-width est attirée sur les éléments?

  • il y a des filtre hacks que vous pouvez utiliser pour atteindre cet - mais c'est pas une bonne solution
  • Il est le paint-order de paramètres, où vous pouvez spécifier, que le remplissage doit être rendu sur le haut de la course, de sorte que vous obtiendrez le "en dehors de l'alignement", voir jsfiddle.net/hne0kyLg/1
  • Trouvé un moyen de faire cela à l'aide de css 'contour' attributs: codepen.io/badcat/stylo/YVzmYY. Pas sûr de ce qui est le support de cette manière sur tous les navigateurs, mais peut être utile.
InformationsquelleAutor Steve | 2011-08-30