Sass mixins不会替换变量

jan*_*gxx 4 sass

我正在尝试使用SASS mixin在动画上自动使用供应商前缀.这是混合:

@mixin keyframes($name) {
    @-o-keyframes $name { @content };
    @-moz-keyframes $name { @content };
    @-webkit-keyframes $name { @content }; 
    @keyframes $name { @content };
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我像这样包括它:

@include keyframes(test) {
    from {
        opacity: 0; 
    }
    to {
        opacity: 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

生成的css看起来像这样:

@-o-keyframes $name { ... }
@-moz-keyframes $name { ... }
@-webkit-keyframes $name { ... }
@keyframes $name { ... }
Run Code Online (Sandbox Code Playgroud)

SASS根本就没有替换$nametest.这是一个已知的bug还是有变通方法?我找不到与此问题相关的任何内容.顺便说一句,我正在使用SASS版本3.4.1.

Zac*_*ier 8

改变$name#{$name}mixin

@mixin keyframes($name) {
  @-o-keyframes #{$name} { @content };
  @-moz-keyframes #{$name} { @content };
  @-webkit-keyframes #{$name} { @content }; 
  @keyframes #{$name} { @content };
}
Run Code Online (Sandbox Code Playgroud)

演示

  • 是的,但根据文档,它应该工作而不必插值:http://sass-lang.com/documentation/file.SASS_REFERENCE.html#mixin-arguments(这个问题突然出现在我的项目上......你的答案解决了这个问题,但我想知道为什么会这样) (4认同)