我@charset "utf-8"在_base.scss部分中有规则,当我在我的主文件@charset规则中导入_base.scss时,不编译.我尝试@viewport {width:device-width;}编译好,但@charset没有.知道问题出在哪里?
是的,它是我的_base.scss部分中的第一个规则,我尝试其他CSS @rules并且它们工作正常但@charset不想在.css文件中编译.
好的,我花了一些时间才弄明白这一点.这是我认为是一个bug,虽然它可能被认为是SASS内的一个真正的"功能".
因此,即使您使用以下命令在SASS文件中指定utf-8编码:
@charset "UTF-8";
Run Code Online (Sandbox Code Playgroud)
...如果你不使用任何非ascii字符,那么它实际上会删除charset定义.目前(据我所知)在任何SASS发行版中都没有解决这个问题 - 我看起来很难.
因此,为了强制将charset定义呈现给输出.css文件,我添加了以下包含非ascii字符的虚拟类,并使其立即开始吐出charset:
//In your main .scss file - first line, first character:
@charset "UTF-8";
[more code...]
Run Code Online (Sandbox Code Playgroud)
然后,在SASS编译的任何文件中,添加以下规则:
.force-UTF-8{
content: "¡";
}
Run Code Online (Sandbox Code Playgroud)
您可以将规则命名为您想要的任何名称,只要它是非ascii字符,您就可以将该反转感叹号更改为您想要的任何其他内容.您可以通过按住"alt"并在小键盘上按"0-1-6-1"来键入该字符(至少在Windows上).只是谷歌非ascii字符,你应该能够搞清楚.
我知道这不太理想,但它确实有效.