【发布时间】:2019-05-07 02:52:12
【问题描述】:
我很难理解 SCSS 变量参数。 如here 所示,很容易理解您可以添加多个参数。
但我不明白如何使用地图来做到这一点。
例如:
我有这张地图:
$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;
}
没有地图也可以轻松搞定,但有了地图怎么办?
谢谢
【问题讨论】:
标签: css sass scss-mixins