2017-01-11 6 views
0

Sassを使用している最後のdivを除き、すべての子divに2つのクラス定義を適用したいと思います。これは私が考えていたものですが、それは働いていない:クラス定義から最後のスタイルを除くすべての子divにスタイルを適用するにはどうすればよいですか?

.all-but-last { 
    :not(:last-child) { 
    .border-grey-light; 
    .b-border; 
    } 
} 
<div class='all-but-last'> 
    <div></div> 
    <div></div> 
</div>  

これを達成するための正しい方法は何ですか?

+0

'all-but-last'が対処したい要素であれば、ここに何も間違いはありません。 – Chris

+0

私にもうまく見えました - おそらく私が適用しようとしているクラスはまだ定義されていません。私はあなたのscssファイルの読み込み順をより詳しく調べます – matthewalexander

+0

また、nth-last-child(n + 1) – vals

答えて

0

CSSプリプロセッサを使用している場合、作成したコードはOKです。ただし、LESSを使用している場合は、&が不足しています。だから、これは試してみてください。

.all-but-last { 
    &:not(:last-child) { 
    .border-grey-light; 
    .b-border; 
    } 
} 
+0

OPのように見えますSASSを使用しています。 SASSの場合、この答えは '.all-but-last div:not(:last-child)'の代わりに '.all-but-last:not(:last-child)'を意味します。 –

+0

@ J.Titus 'SASS'と' LESS'の間のネストされたルールに '&'を使うことに違いはありません。http://sass-lang.com/documentation/file.SASS_REFERENCE.html#nested_rules – Yaser

+0

ありがとう、ありがとう。 –

2
.all-but-last { 
    :not(:last-child) { 
    .border-grey-light; 
    .b-border; 
    } 
} 

これ以上の構文が無効です。ここに修正があります

.all-but-last { 
    :not(:last-child) { 
    @extend .border-grey-light; 
    @extend .b-border; 
    } 
} 

これを機能させるには、拡張するクラス定義が含まれているファイルをインポートする必要があります。これを動作させるために&を使用する必要はありませんでした。

関連する問題