如何测试Sass函数是否存在?
我有一个使用自定义Sass函数的Sass包.但是,在Ruby之外(例如libsass),可能无法定义该函数并提供回退:
url: if($bootstrap-sass-asset-helper, twbs-font-path('name.eot'), 'name.eot')
我想$bootstrap-sass-asset-helper根据是否twbs-font-path声明将值设置为true或false .
Kat*_*ieK 10
当前版本的Sass具有一个function-exists功能. 完整示例:
.foo {
@if function-exists(myfunc) {
exists: true;
}
@else {
exists: false;
}
}
Run Code Online (Sandbox Code Playgroud)
这是v3.3(2014年3月)的新功能,因此您可能需要更新Sass gem才能使用它.
Sass v3.3也添加了其他存在测试:
variable-exists($name)
global-variable-exists($name)
mixin-exists($name)
Run Code Online (Sandbox Code Playgroud)
萨斯没有这样的功能.如果你需要,你可以像这样捏造它:
@debug if(foo() == unquote("foo()"), false, true); // false
@function foo() {
@return true;
}
@debug if(foo() == unquote("foo()"), false, true); // true
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为当你调用一个不存在的函数时,Sass假定你可能正在编写有效的CSS(calc,linear-gradient,attr等).当发生这种情况时,你得到的是一个字符串.因此,如果函数存在,则获得函数的结果而不是字符串.所以foo() == unquote("foo()")只是检查你是否有字符串.
相关: 你能测试一下mixin是否存在?
| 归档时间: |
|
| 查看次数: |
2651 次 |
| 最近记录: |