2017-05-22 6 views
1

shadow DOMのSVGパスをvisible:hiddenまたはdisplay:noneに設定することはできますか?shadow DOMのSVGパスをvisibleに設定する:hidden

ここDEFSファイル内のSVGです:

<symbol id="plus-minus" viewBox="0 0 16 16"> 
    <rect y="7" width="16" height="2" class="bar-horizontal"/> 
    <rect x="7" width="2" height="16" class="bar-vertical"/> 
</symbol> 

は、ここで使用タグ付きSVGです:

<svg class="icon-plus-minus" aria-hidden="true"> 
    <use xlink:href="#plus-minus"></use> 
</svg> 

私はクラス「バー・横」をターゲットとし、それを隠すためにしようとしていますアクションがトリガーされたとき。

ありがとうございます!

+0

なぜJavascriptを実行しないのですか?removeClass( "bar-horizo​​ntal"); '? –

+0

あなたはそれを隠すことができますが、シンボルのすべてのインスタンスに対して変更されます。 –

+0

Robert、親がXのクラス、または特定の属性を持っているときに隠しただけの場合は、そのインスタンスでのみ非表示になります。もしそうなら、私はどのように純粋なCSSでそれをターゲットにしますか? – 36lpi

答えて

1

user-agentシャドウDOMのコンテンツにはアクセスできませんが、ユーザ作成のものだけです。

したがって、2つのシンボルを定義し、代わりに<use>要素にスタイルvisibility:hiddenを適用する必要があります。

<svg> 
    <symbol id="plus-minus-h" viewBox="0 0 16 16"> 
     <rect y="7" width="16" height="2"/> 
    </symbol> 
    <symbol id="plus-minus-v" viewBox="0 0 16 16"> 
     <rect x="7" width="2" height="16" /> 
    </symbol> 
</svg> 
<svg class="icon-plus-minus" aria-hidden="true"> 
    <use xlink:href="#plus-minus-h" class="bar-horizontal"></use> 
    <use xlink:href="#plus-minus-v" class="bar-vertical"></use> 
</svg> 
+0

パーフェクト!ありがとう、Supersharp。 – 36lpi

関連する問題