Этого можно достичь с помощью миксина SCSS. См. Кодовое поле здесь
В связанном кодовом элементе есть переменная, которая определяет ваши цвета:
$color-list: (
"red": #f00,
"black": #000,
"grey": #aaa,
);
Эта переменная-только место, где цвет должен быть определен.Вы можете легко добавить больше цветов, если нужно больше полей.
Затем есть @mixin
, который добавляет background-color
и цветную рамку:
@mixin box-color() {
@each $color in map-keys($color-list) {
&.#{$color} {
background: map-get($color-list, $color);
&:before {
content: ' ';
border: solid transparent;
border-bottom: 1px solid map-get($color-list, $color);
border-width: 15px;
height: 0;
position: absolute;
transform: rotate(180deg);
width: 0;
bottom: -30px;
left: 20px;
}
}
}
}
Миксин в основном добавляетновый класс для каждого цвета в $color-list
и заполняет класс соответствующим цветом для фона и псевдоэлемента.
Миксин просто должен быть включен в класс .box
:
.box {
@include box-color();
position: relative;
width: 100px;
height: 100px;
margin-bottom: 40px;
}