#css #sass #css-selectors
#css #sass #css-селекторы
Вопрос:
Я использую Bootstrap и SASS для создания нескольких цветных лент на основе темы Bootstrap, используя.
@each $color, $value in $theme-colors {
.ribbon-#{$color} {
background: theme-color("#{$color}");
}
}
Генерирует
.ribbon-primary{
background: my primary colour
}
.ribbon-secondary{
background: my secondary colour
}
etc etc
Но у меня есть некоторые свойства CSS, которые можно применить ко всем, например:
.ribbon-primary, .ribbon-secondary...{
display: flex;
}
Как мне написать это в SASS, не повторяя это для каждого разделения цвета темы?
Комментарии:
1. Вы могли бы использовать отдельный класс, который задает общие свойства, например
.ribbon
класс, который имеет общие стили для всех элементов ленты.2. Да — я тоже пытаюсь избежать раздувания классов! 🙂
Ответ №1:
Используйте @extend. Это точно подойдет для вашего варианта использования. Это:
%secretClassToBeExtended {
display: flex;
}
@each $color, $value in $theme-colors {
.ribbon-#{$color} {
@extend %secretClassToBeExtended;
background: theme-color("#{$color}");
}
}
Сгенерирует для:
.ribbon-primary, .ribbon-secondary {
display: flex;
}
.ribbon-primary{
background: my primary colour
}
.ribbon-secondary{
background: my secondary colour
}