2017-04-21 26 views
0

BEMを使用してクラス名を指定しています。例:.accordion、.accordion__title、.accordion__item__content。私がしようとしている何SCSS/SASS - BEMとSASSを使用しています。

.accordion { 
    display: block; 
    @include child_el(item) { 
    &[state=true] { 
    @include child_el(content) { 
     display: block; 
    } 
    } 
} 
} 

:それは非常にうまく機能しているが、私はまた、追加する必要があるときに私は問題を持っている

@mixin child_el($element) { 

     &__#{$element} { 
     @content; 
     } 
    } 

属性:そのために

は、私は、次のmixinを作成しました達成する:

.accordion[state=true] .accordion__item { 
display: block; 
} 

を親が& [状態=真]の代わり.ACCあるとして読み出されますordion

+0

あなたは、標準の '&[状態=真を使用できない理由何らかの理由があります]&__ item'構文ですか?かなり長い間サポートされています。 – damd

+0

実際にはmixinがこれを行います。しかし、どのように私はネスティングを解決する、あなたは私が&達成するために何をしようとしているかの例を与えることができます& – user3541631

+0

私はあなたが欲しかったものを正しく理解すれば答えを追加! – damd

答えて

1

あなたはミックスインせずにこれを書き換えることができます。

.accordion { 
    display: block; 

    &[state=true] &__item { 
    display: block; 
    } 
} 

出力CSSは次のようになります。

.accordion { 
    display: block; 
} 

.accordion[state=true] .accordion__item { 
    display: block; 
} 
関連する問題