快速提问(希望如此)。你能测试一下mixin的存在吗?例如
@if thumbnail-mixin {} @else { //define mixin }.
理想情况下我会使用@unless
,但这只存在于fork上。我知道你可以覆盖一个mixin,但是如果你有一个默认的mixin,我想的更多,而不是必须在每种情况下指定N个变量。
答案 0 :(得分:21)
最新版本的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)
答案 1 :(得分:7)
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。