Definir a largura do traço: 1 em um <rect>
elemento em SVG coloca um traço em cada lado do retângulo.
Como colocar uma largura de traço em apenas três lados de um retângulo SVG?
Definir a largura do traço: 1 em um <rect>
elemento em SVG coloca um traço em cada lado do retângulo.
Como colocar uma largura de traço em apenas três lados de um retângulo SVG?
Respostas:
Se precisar de traço ou não, você também pode usar stroke-dasharray para fazer isso, fazendo com que os travessões e as lacunas correspondam aos lados do retângulo.
rect { fill: none; stroke: black; }
.top { stroke-dasharray: 0,50,150 }
.left { stroke-dasharray: 150,50 }
.bottom { stroke-dasharray: 100,50 }
.right { stroke-dasharray: 50,50,100 }
<svg height="300">
<rect x="0.5" y="0.5" width="50" height="50" class="top"/>
<rect x="0.5" y="60.5" width="50" height="50" class="left"/>
<rect x="0.5" y="120.5" width="50" height="50" class="bottom"/>
<rect x="0.5" y="180.5" width="50" height="50" class="right"/>
</svg>
Veja jsfiddle .
stroke-dasharray
um determinado objeto que define quais bordas devem ser mostradas. Ler o código pode ajudá-lo a entender como ele funciona: codepen.io/lazd/pen/WNweNwy?editors=1010
Não é possível alterar o estilo visual de várias partes de uma única forma em SVG (ausência do módulo Vector Effects ainda não disponível ). Em vez disso, você precisará criar formas separadas para cada traço ou outro estilo visual que deseja variar.
Especificamente para este caso, em vez de usar um elemento <rect>
ou <polygon>
, você pode criar um <path>
ou <polyline>
que cubra apenas três lados do retângulo:
<!-- Move to 50,50 then draw a line to 150,50, to 150,150, and then to 50,150 -->
<path d="M50,50 L150,50 150,150 50,150" />
<polyline points="50,50 150,50 150,150 50,150" />
Você pode ver o efeito disso em ação aqui: http://jsfiddle.net/b5FrF/3/
Para obter mais informações, leia sobre as formas <polyline>
mais poderosas, porém mais confusas <path>
.