【问题标题】:Can you test if a mixin exists?你能测试一个mixin是否存在吗?
【发布时间】:2012-07-14 17:23:58
【问题描述】:

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

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

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

【问题讨论】:

    标签: sass mixins


    【解决方案1】:

    最新版本的 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)
    

    More on Sass v3.3.

    【讨论】:

      【解决方案2】:

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-26
        • 1970-01-01
        • 2014-02-10
        相关资源
        最近更新 更多