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

red*_*t89 12 sass mixins

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

@if thumbnail-mixin {} @else { //define mixin }.
Run Code Online (Sandbox Code Playgroud)

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

Kat*_*ieK 22

最新版本的Sass (v3.3.0)具有以下mixin-exists功能:

.foo {
  @if mixin-exists(mymixin) {
    exists: true;
  }
  @else {
    exists: false;
  }
}
Run Code Online (Sandbox Code Playgroud)

Sass v3.3也添加了其他存在测试:

variable-exists($name)
global-variable-exists($name)
function-exists($name)
Run Code Online (Sandbox Code Playgroud)

更多关于Sass v3.3.


cim*_*non 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
Run Code Online (Sandbox Code Playgroud)

或者您可以使用包含此功能的sass-utilities Compass扩展.