Ustawienie szerokości obrysu: 1 na <rect>
elemencie w SVG powoduje umieszczenie obrysu z każdej strony prostokąta.
Jak umieścić szerokość obrysu tylko na trzech bokach prostokąta SVG?
Ustawienie szerokości obrysu: 1 na <rect>
elemencie w SVG powoduje umieszczenie obrysu z każdej strony prostokąta.
Jak umieścić szerokość obrysu tylko na trzech bokach prostokąta SVG?
Odpowiedzi:
Jeśli potrzebujesz kreski lub braku kreski, możesz również użyć do tego tablicy kresek-kresek, dopasowując kreski i przerwy do boków prostokąta.
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>
Zobacz jsfiddle .
stroke-dasharray
dany obiekt definiujący, które granice powinny być pokazane. Czytanie kodu może pomóc ci zrozumieć, jak to działa: codepen.io/lazd/pen/WNweNwy?editors=1010
Nie można zmienić stylu wizualnego różnych części jednego kształtu w SVG (brak niedostępnego jeszcze modułu Vector Effects ). Zamiast tego musisz utworzyć osobne kształty dla każdego pociągnięcia lub innego stylu wizualnego, który chcesz zmieniać.
W tym przypadku zamiast używać elementu <rect>
lub <polygon>
można utworzyć znak <path>
lub <polyline>
obejmujący tylko trzy boki prostokąta:
<!-- 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" />
Możesz zobaczyć ich efekt w akcji tutaj: http://jsfiddle.net/b5FrF/3/
Aby uzyskać więcej informacji, przeczytaj o <polyline>
i potężniejszych, ale bardziej zagmatwanych <path>
kształtach.