css - 带循环的 sass mixins 给出错误

标签 css sass compass-sass mixins

我正在编写一个 sass 代码来获得如下所示的 css 输出。

 background: -webkit-linear-gradient(top, 50%);
 background: -moz-linear-gradient(top, 50%);
 background: linear-gradient(top, 50%);

我为此编写的 sass mixin 代码是:

@mixin linear-gradient($name, $arg1, $arg2){
    @each $vendor in ('-webkit-', '-moz-','') {
        background: #{$vendor}#{$name}(#{$arg1}, #{$arg2});
    }
}
@include linear-gradient(linear-gradient, top, 50%);

但是我遇到了错误。谁能告诉我为什么?

最佳答案

$name 参数似乎是不必要的,所以我在第一个示例中省略了它。第二个示例显示了使用 $name 的替代解决方案,以便正确编译括号。

@mixin linear-gradient($arg1, $arg2){
    @each $vendor in ('-webkit-', '-moz-','') {
        background: #{$vendor}linear-gradient(#{$arg1}, #{$arg2});
    }
}

@mixin linear-gradient($name, $arg1, $arg2){
    @each $vendor in ('-webkit-', '-moz-','') {
        background: #{$vendor}$name+'('+$arg1+', '+$arg2+')';
    }
}

#myElement {
    @include linear-gradient(top, 50%);
}

/* Output */

#myElement {
  background: -webkit-linear-gradient(top, 50%);
  background: -moz-linear-gradient(top, 50%);
  background: linear-gradient(top, 50%);
}

关于css - 带循环的 sass mixins 给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37686069/

相关文章:

CSS 网格和 Sass

css - 制作一个 Sass mixin,将部分 CSS 写入不同的 CSS 文件

sass - 有条件地导入部分 - compass

android - 悬停效果在 Android 浏览器中不起作用

html - 左边距和 100% 宽度插入 float 文本移出浏览器边缘

javascript - 向当前悬停的元素添加轮廓

html - 多个 <div> 未对齐并彼此重叠

twitter-bootstrap - 如何使用 variable.scss 在 Bootstrap 中更改主按钮的颜色?

css - 字体混合在使用时不打印样式

css - 是否可以@extend Foundation SCSS 类?