У меня трудности с пониманием аргумента переменной SCSS.как показано здесь , довольно легко понять, что вы можете добавить более одного аргумента.
Но я не понимаю, как я могу сделать это с помощью Карт.
Например:
У меня есть эта карта:
$spacing: (
none: 0px,
micro: 2px,
tiny: 4px,
);
ИЯ пишу функцию для управления интервалом: (Скорее всего, это супер неправильно)
@function spacing($value...) {
$chosen-spacing: null;
@if length($value) == 1 {
@if map-has-key($spacing, $value) {
@return map-get($spacing, $value);
}@else {
@error "'#{$value}' doesn't exist in 'spacing map'";
@return null;
}
}@else {
@each $v in $value {
@if map-has-key($spacing, $value) {
$chosen-spacing: map-get($spacing, $value);
}@else {
@error "'#{$value}' doesn't exist in 'spacing map'";
@return null;
}
}
@return $chosen-spacing;
}
}
Я хочу иметь возможность вызывать функцию как:
.blabla {
padding: spacing(none);
margin: spacing (micro, tiny);
}
И выводбыть:
.blabla {
padding: 0px;
margin: 2px 4px;
}
Без карты это можно сделать легко, но с помощью карты, как я могу это сделать?
Спасибо