ストローク幅の設定:SVGの<rect>
要素に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 を参照してください。
SVGで単一の図形のさまざまな部分の視覚スタイルを変更することはできません(まだ利用できません Vector Effects モジュールはありません)。代わりに、ストロークごとに個別のシェイプを作成するか、変更する他の視覚スタイルを作成する必要があります。
特にこの場合、<rect>
または<polygon>
要素を使用する代わりに、長方形の3辺のみをカバーする<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>
を参照してください。形状
ストロークの3つの辺にポリラインを使用し、長方形にストロークをまったく配置しないようにすることができます。 SVGではパス/シェイプの異なる部分に異なるストロークを適用できるとは思わないので、同じ効果を得るには複数のオブジェクトを使用する必要があります。