2013-05-21 12 views
19

私は、CSSを使ってSVG要素のスタイルに影響を及ぼすいくつかの例を見てきましたが、これまでマーカーに関する私の質問に役立つものはありません。そして正直言って、私はまだ両方の構文を使って作業しています(SVG & CSS)。SVGマーカーの色を変更する - CSS?

私はマーカーを定義して、色々な場所で使用することができます。例えば

:誰かが私にこれを実行される可能性があります方法についてのヒントを与えることができれば

<?xml version="1.0" standalone="no"?> 
<svg xmlns="http://www.w3.org/2000/svg" 
    xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" 
    viewBox="0 0 180 320"> 

<defs> 
    <marker class="AsteriskMarkerClass" id="AsteriskMarker" viewBox="-1 -1 2 2" stroke-width="0.1"> 
     <line x1="0" y1="-1" x2="0" y2="1" /> 
     <line x1="-1" y1="0" x2="1" y2="0" /> 
     <line x1="-0.7071" y1="-0.7071" x2="0.7071" y2="0.7071" /> 
     <line x1="-0.7071" y1="0.7071" x2="0.7071" y2="-0.7071" /> 
    </marker> 
</defs> 

.AsteriskMarkerClass { stroke:red; } 
    <path d="M 60,100" 
      stroke-width="10" 
      marker-start="url(#AsteriskMarker)" /> 

.AsteriskMarkerClass { color:green; } 
    <path d="M 90,140" 
      stroke-width="10" 
      marker-start="url(#AsteriskMarker)" /> 

</svg> 

、私はそれをお願い申し上げます。

+2

現時点では可能ではありませんが、今後のSVG 2仕様では何かが検討されています。 –

+0

現在、javascriptを使用して、マーカーの異なるスタイルごとに色を複製したり変更することができます。 – cuixiping

答えて

22

ロバートが書いたように、それはSVG 1.1にはできません。SVG 1.1 specから

プロパティはその祖先から「マーカー」要素に継承します。 プロパティは、 'マーカー' 要素を参照する要素から継承しません。

SVG2あなたが参照している要素のスタイルをしたいと言うことができない:

プロパティは、その先祖から「マーカー」要素に継承します。 プロパティは、 'マーカー' 要素を参照する要素から継承しません。ただし、定義内の要素に「fill」または「stroke」の のコンテキストストローク値を使用すると、マーカーを参照する要素のスタイルに一致するように単一のマーカー を設計できます。

this sectionの例2を参照してください。これはエディタのドラフトであり、構文が変わる可能性があることに注意してください。 context-fillcontext-strokeの実装は、まだすべてのブラウザではありません。試してみたいものを探しているのであれば、Firefox Nightliesの接頭辞(おそらくprefフラグの後ろに、どのフラグが明白ではないかもしれませんが、おそらくgfx.font_rendering.opentype_svg.enabled)が実装されているようです。WG discussion hereを参照してください。

+0

Erik、Robert、お返事ありがとうございました。 Firefox Nightliesとの出会いを望んでいるかどうかはわかりません。 :) –

+1

悲しいことに、クロムにまだいない:http://jsfiddle.net/2RNND/ https://code.google.com/p/chromium/issues/detail?id=278872 https://code.google.com/p/chromium/issues/detail?id = 367737 –

関連する問題