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)
注意额外的不需要的反斜杠(\).
我在这里尝试了解决方案: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,并且效果很好(目前在一些项目的生产中使用它)
希望这可以帮助 !
| 归档时间: |
|
| 查看次数: |
625 次 |
| 最近记录: |