我想检查一个函数的值是否为map。
@function func($props...) {
@if(is-map($props)) {
@return 'something';
}
@else {}
}
h1 {
color: func((color: red));
}
我收到错误:
(颜色:红色)不是有效的CSS值。
我做错了什么?
答案 0 :(得分:2)
我个人从未听说过任何名为is-map
的本地Sass函数。如果要检查某些内容的类型,请使用type-of函数,例如,在这种情况下,检查type-of($props) == map
可以解决您的问题。
@function func($props...) {
@if(type-of($props) == map) {
@return 'something';
}
@else {}
}
答案 1 :(得分:0)
因为函数返回map。不是预期的颜色。使用map-get
可以访问属性值。
nth($props, 1)
你有变量参数。要获得第一个参数,请使用@mixin print($declarations) {
@if $declarations {
@each $property, $value in $declarations {
#{$property}: $value
}
} @else {
@error "mixin print: $declarations is not specified";
}
}
。
Sassmeister demo。
<强>更新强>
如果地图中的参数是动态的,您可以使用此mixin而不是函数。
{{1}}
Mixin sassmeister demo。