2016-10-18 8 views
1

私はすべての私のsvgsが同じ無地を持つようにしたいと思います。だから私は使用するリセットsvgで埋めてください

svg *{ 
    fill: #ccc; 
} 

しかし、私はデフォルトの塗りつぶしを取得したい:ホバー。どのようにして塗りつぶしを無効にし、デフォルトを戻すことができますか?

+1

助けを求める質問には、問題** **の中で、** [** Stack Snippet **](https://blog.stackoverflow.com/2014/09/)で**再現するのに必要な最短コードを含める必要があります。 introduction-runnable-javascript-css-and-html-code-snippets /)があります。 [**最小、完全、および検証可能なサンプルを作成する方法**](http://stackoverflow.com/help/mcve) –

答えて

5

これは:not()を使用して効果的にスタイルを設定できます。

svg *:not(:hover){ 
    fill: #ccc; 
} 

上記働くかもしれないが、ここにあなたがで遊ぶことができ、迅速CodePenです:http://codepen.io/anon/pen/rrqyAx

あなたはまたMozilla Dveloper Network entry for :not()

に多くを学ぶことができます(私は興味があった)あなたは塗りつぶしを使用することができます継承これはまさに有効です。この場合、使用される色は、親のsvgの塗りつぶし値から継承されます。これはCSSでも設定できます。

svg *:hover{ 
    fill : inherit; 
} 

このようにスタイルを付けたsvgをCodePenに追加しました。

+1

2番目のコメントに関しては、 'fill:inherit'は単に色を戻しますデフォルトのSVGカラーに変更します。 10のうち9回は黒です。変更前のSVGの元の塗りつぶし色に戻すことはありません。元の ''が 'ピンク'の[このペン](https://codepen.io/anon/pen/POZXgg)を見てください。ホバリングするとSVGの継承されたSVGデフォルトカラー「黒」に変わります。 – shennan

+0

@スンナンこれは、私がこの答えを見いだす他の人たちにとって価値のある説明であると私は同意しますが、私は尋ねられたと思います。 – daveyfaherty

関連する問題