2016-12-15 6 views
0

パーサスのドキュメント:どこでも拡張セレクタが表示されたスタイルシートに延びるセレクタを挿入してサス@extend発注 - 必要性の回避策

@extend作品。

これは私に大きな闘争を引き起こしています。具体的には、私は拡張する必要があるSassコードを持っています(私はそれが実用的ではないことを理解しています):

私はその後、私の地元のSCSSコード持っている:私は最後のa.disabledセレクタを置く

/* These styles are available for modification */ 
a:link { @extend %base-link } 
a:hover { @extend %hover-link } 
a.disabled 
{ 
    @extend %disabled-link; 
    cursor: default; 
} 

注意を、特異性の点で他のすべてが同じB/Cは、私は他のすべての切り札にa.disabledルールをしたい(すなわちI disabledリンクが上がったときにリンクが黒くならないようにしてください)。

完全性については、HTMLマークアップ:

<a href="http://www.pittsburghpenguins.com">Pittsburgh Penguins</a><br> 
<a href="http://www.philadelphiaflyers.com" class=disabled>Philadelphia Flyers</a><br> 

JSFiddle

適切なカスケードはdisabledクラスでハイパーリンクがホバーにグレーのままにすべきことを指示するだろう(私はhover後にそのルールを置く理由ですルール)。しかし、bass Sassはクラスをスタイルシート内のextendedクラスの場所に移動しています。順序は変わり、カスケードは違反します。彼らは効果的に私のCSSの意図を変えています。

これを回避する方法はありますか?

答えて

0
a.disabled, a.disabled:hover 
{ 
    @extend %disabled-link; 
    cursor: default; 
} 

私はそれがa.disabledの原因を発生し、a:hoverが等しい優先順位を持つセレクタだと思います。したがって、a.disabled:hoverが定義されていない場合、a:hoverというルールが適用されます。

+0

ありがとうございます。明らかだったはずです。疑いがあるときは、特異性を高めましょう!実際のケースでは、ホバールールに:not(.disabled)を追加するほうが効果的でしたが、同じ考え方でした。 Sassがこの「機能」を使って私のスタイリングコードの意味を根本的に変えているという事実を回避するのは、まだ不必要な作業であると感じています。 – CranMalReign

関連する問題