Sass - 检查变量具有哪种值

时间:2014-04-24 18:37:15

标签: variables if-statement sass

假设我有一个变量:

$var: 5px;

但在代码的某处,其价值已经变为可能的颜色数字 em rm

是否有任何功能可以检测它具有哪种类型的值?

@if is-color($var) { //do something }

我知道sass中没有is-color函数,但还有其他方法可以做到这一点还是有效?

2 个答案:

答案 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 */
}