13

Sass 快速问题(希望如此)在这里。你能测试一下mixin的存在吗?例如

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

理想情况下,我会使用@unless,但这仅存在于分叉上。我知道你可以覆盖一个 mixin,但如果你可以有一个默认的 mixin,我想更多,而不是在每种情况下都指定 N 个变量。

4

2 回答 2

27

最新版本的 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 的信息。

于 2013-12-23T04:43:55.257 回答
8

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 扩展。

于 2013-05-31T14:35:18.107 回答