SASS正在使用反斜杠前置unicode内容(\)

Håv*_*hus 5 css java unicode jruby sass

问题

我正在尝试在编译*.scss文件后生成一些unicode字符.

举个例子,我有以下(SCSS):

.element:after {
    content: "\a0";
}
Run Code Online (Sandbox Code Playgroud)

编译文件时,它输出以下(CSS):

.element:after {
    content: "\\a0";
}
Run Code Online (Sandbox Code Playgroud)

注意额外的不需要的反斜杠(\).

尝试解决方案#1

我在这里尝试了解决方案:Sass:unicode转义没有保存在.css文件中,这表明引入了以下功能:

@function unicode($str) {
    @return unquote("\"")+unquote(str-insert($str, "\\", 1))+unquote("\"")
}
Run Code Online (Sandbox Code Playgroud)

像这样使用它(SCSS):

.element:after {
    content: unicode("a0");
}
Run Code Online (Sandbox Code Playgroud)

但是,这会产生以下(CSS)

.element:after {
    content: "\\" ")+unquote(str-insert($str, " \\\\ ", 1))+unquote(" \\ ""; 
}
Run Code Online (Sandbox Code Playgroud)

请注意,它甚至没有按预期调用该函数.这是为什么?

项目细节

我在Maven中使用这些库:

<dependency>
    <groupId>net.jawr</groupId>
    <artifactId>jawr-core</artifactId>
    <version>3.9</version>
</dependency>

<dependency>
    <groupId>net.jawr.extensions</groupId>
    <artifactId>jawr-spring-extension</artifactId>
    <version>3.9</version>
</dependency>

<dependency>
    <groupId>com.darrinholst</groupId>
    <artifactId>sass-java-gems</artifactId>
    <version>3.4.20.0</version>
</dependency>

<dependency>
    <groupId>org.jruby</groupId>
    <artifactId>jruby-core</artifactId>
    <version>9.1.5.0</version>
</dependency>

<dependency>
    <groupId>org.jruby</groupId>
    <artifactId>jruby-stdlib</artifactId>
    <version>9.1.5.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

临时解决方案

不要在SCSS中使用unicodes.相反,在HTML中使用Font Awesome(在CSS文件中保留Font Awesome).

小智 4

我在尝试使用自定义图标字体时遇到了同样的问题。我找到的解决方案是创建一个 mixin,如下所示:

@mixin class-for-icon($name, $code) {
    .icon-#{$name}::before {
        content: unquote("\"\\#{$code}\"");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我可以这样使用它:

@include class-for-icon('myIcon', 'e1ff');

/* generates */

.icon-myIcon::before {
    content: "\e1ff";
}
Run Code Online (Sandbox Code Playgroud)

我使用node-sass 4.5.3将我的sass文件编译成css,并且效果很好(目前在一些项目的生产中使用它)

希望这可以帮助 !