你能测试一下是否存在一个mixin吗



Sass快速问题(希望如此)。你能测试混合蛋白的存在吗?例如

@if thumbnail-mixin {} @else { //define mixin }.

理想情况下,我会使用@unless,但它只存在于fork上。我知道你可以覆盖一个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 v3.3的更多信息。

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实用程序Compass扩展,其中包含此功能。

最新更新