【发布时间】:2012-07-14 17:23:58
【问题描述】:
Sass 快速问题(希望如此)在这里。你能测试一下mixin的存在吗?例如
@if thumbnail-mixin {} @else { //define mixin }.
理想情况下,我会使用@unless,但这仅存在于分叉上。我知道你可以覆盖一个 mixin,但我想更多的是如果你可以有一个默认的 mixin,而不是在每种情况下都指定 N 个变量。
【问题讨论】:
Sass 快速问题(希望如此)在这里。你能测试一下mixin的存在吗?例如
@if thumbnail-mixin {} @else { //define mixin }.
理想情况下,我会使用@unless,但这仅存在于分叉上。我知道你可以覆盖一个 mixin,但我想更多的是如果你可以有一个默认的 mixin,而不是在每种情况下都指定 N 个变量。
【问题讨论】:
最新版本的 Sass (v3.3.0) 有一个 mixin-exists 函数:
.foo {
@if mixin-exists(mymixin) {
exists: true;
}
@else {
exists: false;
}
}
Sass v3.3 还添加了其他存在测试:
variable-exists($name)
global-variable-exists($name)
function-exists($name)
【讨论】:
Sass 目前不具备判断 mixin 是否存在的原生功能。
https://github.com/nex3/sass/issues/561#issuecomment-14430978
您可以创建一个用 Ruby 编写的 Sass 函数:
def mixin_exists(mixin_name)
if(environment.mixin(mixin_name.value))
Sass::Script::Bool.new(true)
else
Sass::Script::Bool.new(false)
end
end
或者您可以使用包含此功能的sass-utilities Compass extension。
【讨论】: