2016-08-18 2 views
0

У меня есть BEM структуру, как это (но вопрос не о BEM):Sass добавить родительский селектор после текущего (селектор &)

.form-element { //.form-element 
    ... 
    &__control { //.form-element__control 
     ... 
    } 
    //now I want to have specific rule: textarea.form-element__control 
    textarea& { // < here is an error 

    } 
    //it works like this: 
    textarea & { 

    } 
} 

Я думаю, я что-то крошечное, как через наручи отсутствует, или что-то подобное, если оно вообще выполнимо.

Вопрос в коде комментарии :)

+0

МЕНЬШЕ ручки этой особенности лучше, чем Сасс. – zzzzBov

+0

Ну, эта особенность - слишком малая причина, чтобы перейти к Меньше. :) – Kindzoku

+0

Я абсолютно согласен, поэтому я не говорил вам переключаться на LESS. Я просто прокомментировал, потому что это стоит отметить, учитывая, что синтаксис, который вы использовали, как есть, находится в LESS. – zzzzBov

ответ

1

Если следовать моему примеру это добиться того, что вы после этого.

Используйте метод интерполяции #{ } и объединить его с функцией @at-root

@at-root textarea#{&} { 
    display: none; 
} 

Мой пример здесь

.contact-block { 
    @at-root textarea#{&} { 
     display: none; 
    } 
} 

компилирует

textarea.contact-block { 
    display: none; 
} 

Так это то, что ваш будет выглядеть

.form-element { 
    &__control { 
     @at-root textarea#{&} { 
      display: none; 
     } 
    } 
} 

Компилирование в

textarea.form-element__control { 
    display: none; 
} 
+0

Удивительный! : D Thx! – Kindzoku

+0

Я отредактировал свой ответ, чтобы проиллюстрировать, чего вы пытаетесь достичь, используя свои классы. – KINKWILDE

+0

Мне просто нужно было # {&} это вуду! :) Никогда не думал использовать его таким образом :) Раньше я использовал его только для динамического создания имени класса в mixins. – Kindzoku

Смежные вопросы