带有 $var 的 sass mixin 用于 Base64

Posted

技术标签:

【中文标题】带有 $var 的 sass mixin 用于 Base64【英文标题】:sass mixin with $var for Base64 【发布时间】:2014-01-18 23:32:44 【问题描述】:

我正在尝试为我的 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】:

你需要在这里使用字符串插值。您可能需要引用它,然后使用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 背景的浏览器提供回退,您将需要使用包含 background-size 的背景简写:

.foo 
    background: url(foo.png) no-repeat;
    background: url(foo.svg) 0 0 / auto auto no-repeat;

【讨论】:

像魅力一样工作。谢谢!

以上是关于带有 $var 的 sass mixin 用于 Base64的主要内容,如果未能解决你的问题,请参考以下文章

scss #sass我的一些用于SASS / Compass的goto mixins

scss 用于媒体查询的Sass mixins

scss 用于项目Mixin零件的SASS样板

scss 方便的sass mixin用于媒体查询

scss Sass mixin用于使表格响应

scss Sass mixin用于快速应用clearfix