假设我有一个变量:
$var: 5px;
但在代码的某处,其价值已经变为可能的颜色,数字, em , rm 等
是否有任何功能可以检测它具有哪种类型的值?
即
@if is-color($var) { //do something }
我知道sass中没有is-color函数,但还有其他方法可以做到这一点还是有效?
答案 0 :(得分:21)
来自Sass文档:
type_of($ value)
返回值的类型。
示例:
type-of(100px) => number type-of(asdf) => string type-of("asdf") => string type-of(true) => bool type-of(#fff) => color type-of(blue) => color
http://sass-lang.com/documentation/Sass/Script/Functions.html#type_of-instance_method
(请注意-
和_
在Sass函数中是可互换的。)
答案 1 :(得分:5)
为了更清楚一点,您可以在这里使用type-of:
@if type-of($my-variable) == string {
/* do something */
}
除了文档中显示的类型之外,type-of还会返回' map'如果传递了SASS地图对象:
$font-sizes: (
small: rem-calc(18px),
medium: rem-calc(20px),
large: rem-calc(22px)
);
@if type-of($font-sizes) == map {
/* do map-related thing */
} @else {
/* do other thing */
}