Sass 逃之夭夭

Sass 逃之夭夭,sass,Sass,下面是我正在使用的mixin示例: @mixin gradient($from, $to, $height) { background-color: #{$to}; background-image: url("/media/img/gradient/4/#{$height}/#{$from}/#{$to}/"); background-repeat:repeat-x; } 问题是$from和$to颜色传递到url时没有#,因此典型的调用如下所示: @include g

下面是我正在使用的mixin示例:

@mixin gradient($from, $to, $height) {
    background-color: #{$to};
    background-image: url("/media/img/gradient/4/#{$height}/#{$from}/#{$to}/");
    background-repeat:repeat-x;
}
问题是$from和$to颜色传递到url时没有#,因此典型的调用如下所示:

@include gradient(ff00ff, 00ff00, 600);
background-color: ##{$to};
背景色前面需要一个散列。我想在mixin中这样写一行:

@include gradient(ff00ff, 00ff00, 600);
background-color: ##{$to};

但这不起作用。。。有什么想法吗?

最后我决定重写:

@include gradient(ff00ff, 00ff00, 600);
作为


正如预期的那样。我需要做一些类似的事情,因为这是谷歌的第一个结果,我想我应该补充一下我是如何解决这个问题的

我必须传递一个十六进制颜色,并使用类名中的值作为真实颜色。所以我创建了一个addHash函数

这里有一个简单的例子

@function addhash($input) {
  @return unquote("#" + $input);
}

@mixin setColour($colour, $textColour:"0000ff")
{
    .headerButtons .colour#{$colour}  a{
        background:addhash($colour);
        color:addhash($textColour);
    }
}
@包括设置颜色(“00ff00”)

这样输出CSS

.headerButtons .colour00ff00 a {
    background: #00ff00;
    color: #0000ff;
}
希望这会对某人有所帮助。

也许这会奏效:

{“{”+$myVar}