Atualmente construindo um aplicativo SVG baseado em navegador. Dentro deste aplicativo, várias formas podem ser estilizadas e posicionadas pelo usuário, incluindo retângulos.
Quando aplico a stroke-width
em um rect
elemento SVG , por exemplo 1px
, o traçado é aplicado ao rect
deslocamento e inserção do de diferentes maneiras por diferentes navegadores. Isso está se mostrando problemático, especialmente quando tento calcular a largura externa e a posição visual de um retângulo e posicioná-lo ao lado de outros elementos.
Por exemplo:
- O Firefox adiciona 1 px inserido (inferior e esquerdo) e 1 px offset (superior e direito)
- O Chrome adiciona 1 px inserido (superior e esquerdo) e 1 px offset (inferior e direito)
Minha única solução até agora seria desenhar as bordas reais (provavelmente com a path
ferramenta) e posicionar as bordas atrás do elemento traçado. Mas essa solução é uma solução desagradável e eu preferiria não seguir esse caminho, se possível.
Então, minha pergunta é: você pode controlar como um SVG stroke-width
é desenhado em elementos?
paint-order
parâmetro, onde você pode especificar, que o preenchimento deve ser renderizado na parte superior do traçado, para que você obtenha o "alinhamento externo", consulte jsfiddle.net/hne0kyLg/1