我可以在SASS mixin中声明一个新变量吗?

塞鲁蒂

我有以下SASS mixin:

@mixin gradient($start, $end, $fallback: $end, $direction: bottom) {
@if $direction == top {
    $directionOld: bottom;
} @else if $direction == right {
    $directionOld: left;
} @elseif $direction == bottom {
    $directionOld: top;
} @elseif $direction == left {
    $directionOld: right;
}

background: $fallback;
background: -webkit-linear-gradient($directionOld, $start, $end);
background:         linear-gradient(to $direction, $start, $end);
}

由于未定义$ directionOld,因此此mixin引发错误。我可以修复默认情况下将此变量添加到mixin参数中的问题:

@mixin gradient($start, $end, $fallback: $end, $direction: bottom, $directionOld: top) {
@if $direction == top {
    $directionOld: bottom;
} @else if $direction == right {
    $directionOld: left;
} @elseif $direction == bottom {
    $directionOld: top;
} @elseif $direction == left {
    $directionOld: right;
}

background: $fallback;
background: -webkit-linear-gradient($directionOld, $start, $end);
background:         linear-gradient(to $direction, $start, $end);
}

但这不是我想要的那么干净,第一个代码中是否有任何错误?

非常感谢!

帕勒姆

是的,您可以在Mixin中定义新变量,但是必须在if语句中使用它之前定义它。

我再次编写您的代码:

@mixin gradient($start, $end, $fallback: $end, $direction: bottom) {
    $directionOld:top !default;

    @if $direction == top {
        $directionOld: bottom;
    } @else if $direction == right {
        $directionOld: left;
    } @elseif $direction == bottom {
        $directionOld: top;
    } @elseif $direction == left {
        $directionOld: right;
    }

    background: $fallback;
    background: -webkit-linear-gradient($directionOld, $start, $end);
    background:         linear-gradient(to $direction, $start, $end);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以使用变量的类型在Java中声明另一个变量吗?

来自分类Dev

我们可以在C中与变量一起声明一个函数吗?

来自分类Dev

我可以在父类中声明一个占位符变量,在子类中以不同类型声明它吗?

来自分类Dev

我可以使用变量模板来声明另一个变量模板吗?

来自分类Dev

我可以使用变量模板来声明另一个变量模板吗?

来自分类Dev

有条件的时候可以在Java中声明一个变量吗?

来自分类Dev

我们可以在类声明中声明一个类类型的指针吗?

来自分类Dev

我可以格式化matlab命令的输出,以便可以使用它声明一个新变量吗?

来自分类Dev

我可以重用一个表单来声明多个变量吗?

来自分类Dev

我可以在断点内设置Sass变量吗?

来自分类Dev

我可以在断点内设置Sass变量吗?

来自分类Dev

我可以在一个类中设置一个类变量吗?

来自分类Dev

我可以在SASS中添加元素吗?

来自分类Dev

我可以在sass中缩写输入类型吗?

来自分类Dev

我可以在JavaScript中使用另一个变量生成新数组吗?

来自分类Dev

我可以在Objective C类别中声明一个非公共方法吗?

来自分类Dev

哪一个可以让我在变量声明中获得更好的性能?

来自分类Dev

我可以将LESS文件导入SASS吗?

来自分类Dev

我可以将LESS文件导入SASS吗?

来自分类Dev

Sass-我可以使用定位标签吗?

来自分类Dev

jekyll和sass; 我可以使用元吗?

来自分类Dev

我可以在查询中声明变量吗?

来自分类Dev

我可以在查询中声明变量吗?

来自分类Dev

可以声明一个清单吗?

来自分类Dev

我需要在PHP构造函数中初始化之前声明一个变量吗

来自分类Dev

我可以在Sublime文字2中创建一个新类吗?

来自分类Dev

我们可以在 Flutter 中创建一个新的小部件吗?

来自分类Dev

为什么我可以在JavaScript中删除一个声明为a = 1而不是一个声明为var b = 1的变量

来自分类Dev

我可以使用另一个类内部的函数中的变量吗?

Related 相关文章

  1. 1

    我可以使用变量的类型在Java中声明另一个变量吗?

  2. 2

    我们可以在C中与变量一起声明一个函数吗?

  3. 3

    我可以在父类中声明一个占位符变量,在子类中以不同类型声明它吗?

  4. 4

    我可以使用变量模板来声明另一个变量模板吗?

  5. 5

    我可以使用变量模板来声明另一个变量模板吗?

  6. 6

    有条件的时候可以在Java中声明一个变量吗?

  7. 7

    我们可以在类声明中声明一个类类型的指针吗?

  8. 8

    我可以格式化matlab命令的输出,以便可以使用它声明一个新变量吗?

  9. 9

    我可以重用一个表单来声明多个变量吗?

  10. 10

    我可以在断点内设置Sass变量吗?

  11. 11

    我可以在断点内设置Sass变量吗?

  12. 12

    我可以在一个类中设置一个类变量吗?

  13. 13

    我可以在SASS中添加元素吗?

  14. 14

    我可以在sass中缩写输入类型吗?

  15. 15

    我可以在JavaScript中使用另一个变量生成新数组吗?

  16. 16

    我可以在Objective C类别中声明一个非公共方法吗?

  17. 17

    哪一个可以让我在变量声明中获得更好的性能?

  18. 18

    我可以将LESS文件导入SASS吗?

  19. 19

    我可以将LESS文件导入SASS吗?

  20. 20

    Sass-我可以使用定位标签吗?

  21. 21

    jekyll和sass; 我可以使用元吗?

  22. 22

    我可以在查询中声明变量吗?

  23. 23

    我可以在查询中声明变量吗?

  24. 24

    可以声明一个清单吗?

  25. 25

    我需要在PHP构造函数中初始化之前声明一个变量吗

  26. 26

    我可以在Sublime文字2中创建一个新类吗?

  27. 27

    我们可以在 Flutter 中创建一个新的小部件吗?

  28. 28

    为什么我可以在JavaScript中删除一个声明为a = 1而不是一个声明为var b = 1的变量

  29. 29

    我可以使用另一个类内部的函数中的变量吗?

热门标签

归档