Sass 用于'$';前缀

Sass 用于'$';前缀,sass,mixins,Sass,Mixins,我正在开发一个简单的mixin,与Grunt Spritesmith一起使用。这是我到目前为止写的 @mixin svg($svg, $height, $width) { background-image:url(../../images/svg/#{$svg}.svg); background-repeat:no-repeat; display:block; height:$height + px; width:$width + px; .no-

我正在开发一个简单的mixin,与Grunt Spritesmith一起使用。这是我到目前为止写的

@mixin svg($svg, $height, $width) {
    background-image:url(../../images/svg/#{$svg}.svg);
    background-repeat:no-repeat;
    display:block;
    height:$height + px;
    width:$width + px;
    .no-svg & {
        @include sprite($#{$png});
    }
}   
我会像这样使用它

@include svg("logo", 50, 100);
我遇到的问题是,我只传递了图像的名称(在本例中只是“logo”)以在背景图像url中使用,但是我需要在@include sprite mixin前面加上一个美元,就像这样

@include sprite($logo);

因此,我真正需要知道的是如何在Sass中格式化这一行,以便它输出传入的$svg变量,并在其前面加上$svg前缀。这是需要调整@include sprite($#{$png})的行;谢谢。

我有点困惑,你为什么不直接应用
@include-sprite(#{$svg})

输出

div {
  background-image: url(../../images/svg/logo.svg);
  background-repeat: no-repeat;
  display: block;
  height: 50px;
  width: 100px;
}

.no-svg div {
  background-image: url(../../images/png/logo.png);
  ...

}

例如:

因为我使用的是Grunt Spritesmith(),它生成一个mixin,用于将png用作精灵,而不是请求个人。png@GuerillaRadio我的错我没有看到这是一个遗憾,这不能做到,谢谢你的提示。
div {
  background-image: url(../../images/svg/logo.svg);
  background-repeat: no-repeat;
  display: block;
  height: 50px;
  width: 100px;
}

.no-svg div {
  background-image: url(../../images/png/logo.png);
  ...

}