Искал, но не могу найти ответ ..
У меня есть элемент, который генерируется (внешней платформой) со следующими классами: кнопка p и кнопка.
Теперь SCSS выглядит так:
.p-button {
&.button {
margin: 10px;
}
}
Но я хочу провести рефакторинг с использованием включений в миксин (это большой проект, поэтому нет другого способа улучшить этот код, кроме использования миксинов). Миксин берет данный селектор и применяет. к этому. Я не могу изменить миксин, так как он используется многими другими командами, поэтому я не могу передать амперсанд вместе с селектором. Я попробовал это:
.p-button {
& {
@include button-appearance("button") {
margin: 10px;
}
}
}
Но это не работает (ставит пробел между ними). Вы не можете сделать это:
.p-button {
&@include button-appearance("button") {
margin: 10px;
}
}
У кого-нибудь есть подсказка?
РЕДАКТИРОВАТЬ: Вот миксин
@mixin button-appearance(
$appearance-class,
$show,
$background-color,
$background-image,
$background-position) {
$sel: $button-selector;
@if $appearance-class {
$sel: $sel + '.' + $appearance-class;
}
#{$sel} {
@include normalized-background-image($background-image);
@include show($show);
background-color: $background-color;
background-position: $background-position;
}
@content;
}
РЕДАКТИРОВАТЬ 2: Вот селектор кнопки $ (я не могу отредактировать это в платформе, но, возможно, перезаписать это в моем собственном проекте?)
$button-class: 'p-button';
$button-selector: '.#{$button-class}';