2012-01-23 6 views

答えて

22

SVGの単一シェイプのさまざまな部分のビジュアルスタイルを変更することはできません(まだ使用できないVector Effectsモジュールがない場合)。その代わりに、ストロークごとに別のシェイプを作成するか、変更する他のビジュアルスタイルを作成する必要があります。

この場合のために、代わりにあなただけの四角形の三辺をカバー <path><polyline>を作成することができ <rect>または <polygon>要素を使用しての具体的

<!-- 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/

Red square with stroke on three sides

、読んより強力ではあるがもっと混乱するの形。

2

3つのストローク側にポリラインを使用し、ストロークを四角形にまったく入れないことができます。 SVGではパス/シェイプの異なる部分に異なるストロークを適用できるとは思わないので、同じ効果を得るには複数のオブジェクトを使用する必要があります。

132

ストロークまたはノンストロークが必要な場合は、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を参照してください。

+24

これは、神秘的な輝かしい解決策です。私は2回upvoteすることができれば願っています。ありがとうございました。 –

+1

それを愛し、私のために働いた。 [github demo](http://nathanleiby.github.com/growthchart)は、実際のところを見るためにあるポイントにカーソルを合わせます。 – Nate

+1

ホット・ダン、エレガント! – Roman

関連する問題