使用$ var for base64的sass mixin

时间:2014-01-01 09:47:43

标签: css svg sass mixins

我正在尝试为我的svg图标创建简单的mixin。

密新

@mixin ico($position, $size, $image) {
    background-image: url(data:image/svg+xml;base64,$image);
    background-repeat: no-repeat;
    background-size : $size;
    background-position: $position;
    background-color: $blue-dark;
    height: 30px;
    padding-left: 30px;
}

SASS错误:

"Syntax error: Invalid CSS after \"...image: url(data\": expected comma, was \":image/svg+xml;...\"\A

不确定如何绕过它。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

您需要在此处使用字符串插值。您可能需要引用它,然后使用unquote()函数。

$blue-dark: blue;
@mixin ico($position, $size, $image) {
    background-image: url(data:image/svg+xml;base64,#{$image});
    background-repeat: no-repeat;
    background-size : $size;
    background-position: $position;
    background-color: $blue-dark;
    height: 30px;
    padding-left: 30px;
}
.foo {
    @include ico(0, 10, foo);
}

值得注意的是,如果您希望能够为不支持SVG背景的浏览器提供后备,那么您将要使用包含{{1}的背景速记}:

background-size