ストローク幅の設定:<rect>
SVGの要素に1を設定すると、長方形のすべての辺にストロークが配置されます。
SVG長方形の3辺だけにストローク幅を配置するにはどうすればよいですか?
ストローク幅の設定:<rect>
SVGの要素に1を設定すると、長方形のすべての辺にストロークが配置されます。
SVG長方形の3辺だけにストローク幅を配置するにはどうすればよいですか?
回答:
ストロークまたはストロークなしが必要な場合は、stroke-dasharrayを使用して、ダッシュとギャップを長方形の辺と一致させることもできます。
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>
jsfiddleを参照してください。
stroke-dasharray
これは、表示する境界線を定義するオブジェクトを指定して生成するプログラムソリューションです。コードを読むと、コードがどのように機能するかを理解するのに役立つ場合があります。codepen.io
SVGで単一のシェイプのさまざまな部分の表示スタイルを変更することはできません(まだ利用できないベクターエフェクトモジュールがない場合)。代わりに、ストロークごと、または変化させたい他の視覚スタイルごとに個別の形状を作成する必要があります。
具体的にこのような場合のために、代わりに使用するの<rect>
か<polygon>
の要素をあなたが作成できる<path>
か<polyline>
だけ矩形の三辺をカバーしていること:
<!-- 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" />
これらの実際の効果は、http://jsfiddle.net/b5FrF/3/で確認できます。
詳細については<polyline>
、より強力でありながら混乱を招く<path>
形状についてお読みください。