2013-04-19 14 views
12

[OK]を、私は私はSCSSでこのようにそれを実行しようとしました、

.social-media { /* ... */ } 
.social-media .twitter { /* ... */ } 
.social-media .facebook { /* ... */ } 
ul.social-media { /* ... */ } 

したがって、次の伝統的なCSSを持っているとサスと最後まで親セレクタを追加アンパサンドはセレクタの冒頭にしか現れないように思えるので、うまくいきません。回避策はありますか?あなたの.socialメディア{

/* ... */ 

    .twitter { 
     /* ... */ 
    } 
    .facebook { 
     /* ... */ 
    } 
} 

ul.social-media { 
    /* ... */ 
} 

サス3.3 以降

:あなたが行うことができます

+0

あなたは物事を命名している方法を再考を検討する必要があります。なぜあなたは 'ソーシャルメディア'クラスの要素を持っていて、それと同じクラス名のソートされていないリストを持っていますか? – zakangelle

+0

あなたはそれを正しく理解していませんでした。私は一般的に.social-media要素に定義されたスタイルをいくつか持っています。そして、 '.social-media'クラスを使っていくつかの特定のスタイルをUL要素に適用したいと思います。あなたが暗示しているように、私のコードに '.social-media ul.social-media'のようなものはありません。 –

+0

私のせいで、あまりにも多くのコードがスキャンされていて読み込みが不十分です:) – zakangelle

答えて

23

サス3.2およびそれ以前

唯一のことは、すべてのあなたのネストやない巣を逆になっています補間と@at-rootディレクティブを使用して行うことができます。

.social-media { 
    /* ... */ 

    // Here's the solution: 
    @at-root ul#{&} { 
     /* ... */ 
    } 
} 

あなたの親セレクタが複数のセレクタが含まれている場合は、あなたの代わりにselector-appendを使用する必要があります:

.social-media, .doodads { 
    /* ... */ 

    // Here's the solution: 
    @at-root #{selector-append(ul, &)} { 
     /* ... */ 
    } 
} 

出力:

.social-media, .doodads { 
    /* ... */ 
} 
ul.social-media, ul.doodads { 
    /* ... */ 
} 
+0

これは私が恐れていたことです...信じられないほど、あなたはあなたの草の色を暗く明るくすることができます。ご回答有難うございます! –

+0

'&'を使うのは単純な文字列の置換ではないという事実と関係しています。あなたの親セレクタが 'ul.foo'だった場合、' ulul.foo'で終わったかもしれません。 – cimmanon

+0

hm ...このソリューションはsassmeisterでうまく動作しますが、私のローカルではsassmeisterと同じバージョンのsassを使っていますが、これは私にエラーを与えます:( –

関連する問題