首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Compass不编译@charset规则

Compass不编译@charset规则
EN

Stack Overflow用户
提问于 2014-03-22 11:57:33
回答 2查看 2.5K关注 0票数 3

我在我的_base.scss部分文件中有@charset "utf-8"规则,当我在我的主文件中导入_base.scss时,@charset规则不能编译。我试过@viewport {width:device-width;},它编译得很好,但是@charset不行,你知道问题出在哪里吗?

是的,这是我的_base.scss partial中的第一个规则,我尝试了其他CSS @规则,它们工作得很好,但是@charset不想编译成.css文件。

EN

回答 2

Stack Overflow用户

发布于 2014-03-25 04:04:42

好吧,我花了一些时间来弄清楚这一点。这就是我认为的一个bug,尽管它可能被认为是SASS中的一个真正的“特性”。

因此,即使您在SASS文件中使用以下命令指定utf-8编码:

代码语言:javascript
复制
@charset "UTF-8";

...if如果你不使用任何非ascii字符,那么它实际上会剥离字符集的定义。目前(就我所能找到的)在任何SASS发行版中都没有解决这个问题的方法--我很努力地寻找。

因此,为了强制将字符集定义呈现到输出.css文件中,我添加了以下虚拟类,其中包含一个非ascii字符,并使其立即开始输出字符集:

代码语言:javascript
复制
//In your main .scss file - first line, first character:
@charset "UTF-8";
[more code...]

然后,在属于SASS编译的任何文件中,添加以下规则:

代码语言:javascript
复制
.force-UTF-8{
    content: "¡";
}

您可以将规则命名为任何您想要的名称,并且可以将该反转的感叹号更改为任何其他您想要的名称,只要它是非ascii字符即可。您可以通过按住"alt“键并按下数字键盘上的"0-1-6-1”来键入该字符(至少在windows上是这样)。只需谷歌非ascii字符,您应该能够找到它。

我知道这不太理想,但它是有效的。

票数 5
EN

Stack Overflow用户

发布于 2014-03-22 12:10:55

基于@charsetthe underlying SASS,它看起来必须在样式表的第一行:

在样式表的开头(在任何空格或注释之前)添加@charset“编码名称”;,Sass会将其解释为给定的编码。请注意,无论您使用哪种编码,都必须可以转换为Unicode.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22573254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档