2017-11-01 3 views
0

私はsvgスプライトで作業しています。の機能を使用して配置されたいくつかのsvgのストロークプロパティを変更しようとしています。 ShadowRootによって拡張されたsvgをDOMに配置し、外側のCSSルールからロックされているように見えます。useによって配置されたsvg rect strokeを変更します。

しかし、で可能な解決策を見てきましたが、スタイルではを使用しますが、機能しません。誰でも私を助けることができますか?それはまったくできますか?

<svg style="display:none;"> 
    <symbol id="test"> 
     <rect x="10" y="10" width="100" height="100" stroke="green"/> 
    </symbol> 
</svg> 

<svg id="some" class="icon"><use xlink:href="#test" /></svg> 

#some use rect { 
stroke: red !important; 
} 

答えて

0

2つのIDが同じで、シンボルからストロークを削除し、useクラスに適用する必要があります。答えを

#test { 
 
    fill: none; 
 
} 
 

 
.red { 
 
    stroke: red; 
 
} 
 

 
.green { 
 
    stroke: green; 
 
}
<svg style="display:none;"> 
 
    <symbol id="test"> 
 
     <rect x="10" y="10" width="100" height="100"/> 
 
    </symbol> 
 
</svg> 
 

 
<svg class="icon"><use xlink:href="#test" class="red"/></svg> 
 

 
<svg class="icon"><use xlink:href="#test" class="green"/></svg>

+0

ありがとう!うーん、でも**私の**使用** svgでいくつかのrectとパスを持っている場合、私は直腸のストロークのためだけにしたい - 赤ですか? P.私はあなたの提案を実装しようとしましたが、残念ながら – Velidan

+0

AFAIK、それを行うことはできません動作しません。 –

+0

さまざまな色を「」にプッシュする方法については、この回答を参照してください。https://stackoverflow.com/a/46354931/1869660 – Sphinxxx

関連する問題