Sass mixin并没有替换变量

Sass mixin并没有替换变量,sass,Sass,我正在尝试使用SASS mixin在动画中自动使用供应商前缀。这是mixin: @mixin keyframes($name) { @-o-keyframes $name { @content }; @-moz-keyframes $name { @content }; @-webkit-keyframes $name { @content }; @keyframes $name { @content }; } 现在,如果我像这样包括它: @include k

我正在尝试使用SASS mixin在动画中自动使用供应商前缀。这是mixin:

@mixin keyframes($name) {
    @-o-keyframes $name { @content };
    @-moz-keyframes $name { @content };
    @-webkit-keyframes $name { @content }; 
    @keyframes $name { @content };
}
现在,如果我像这样包括它:

@include keyframes(test) {
    from {
        opacity: 0; 
    }
    to {
        opacity: 1;
    }
}
@-o-keyframes $name { ... }
@-moz-keyframes $name { ... }
@-webkit-keyframes $name { ... }
@keyframes $name { ... }
生成的css如下所示:

@include keyframes(test) {
    from {
        opacity: 0; 
    }
    to {
        opacity: 1;
    }
}
@-o-keyframes $name { ... }
@-moz-keyframes $name { ... }
@-webkit-keyframes $name { ... }
@keyframes $name { ... }

SASS只是没有将
$name
替换为
test
。这是一个已知的bug还是有解决方法?我找不到与这个问题有关的任何东西。顺便说一下,我正在使用SASS版本3.4.1。

在mixin中将
$name
更改为
{$name}

@mixin keyframes($name) {
  @-o-keyframes #{$name} { @content };
  @-moz-keyframes #{$name} { @content };
  @-webkit-keyframes #{$name} { @content }; 
  @keyframes #{$name} { @content };
}

这是可行的,但它是一个bug,对吗?文档中没有提到这一点。实际上是的,但根据文档,它应该可以工作,而不必做插值:(这个问题也突然出现在我的项目上……你的回答解决了问题,但我想知道为什么会发生这种情况)