在SCSS mixin定义中,我想检查参数是否是预定义字符串之一。在以下示例中,如何创建条件以检查$arg
是"foo"
,"bar"
还是"baz"
?如果没有,我想提出一个错误。
@mixin my-mixin($arg){
@if some-condition {
@error "argument must be `foo`, `bar`, or `baz`."
};
...
}
答案 0 :(得分:3)
到目前为止,还没有内置的方法来实现这一目标。但是,你可以简单地编写自己的@function
(例如名为in_list
1 ),它使用index()
方法来检查是否存在value } list如下:
/**
* in_list — Checks if a value exists in a list
*
* @param $value the needle
* @param $list the haystack
* @return boolen TRUE if $value is found in the $list, FALSE otherwise.
*/
@function in_list($value, $list) {
@return (false != index($list, $value));
}
例如:
$list: foo, bar, baz;
$val: qux;
...
@if in_list($val, $list) {
// do something
} @else {
@error "$val argument must exist in #{$list}; was '#{$val}'";
}
1。函数名称和语法的灵感来自PHP in_array()
函数。