我有这样的CSS规则:
background: #fff url('/assets/img/file.png');
正在编译:
background: white url("/assets/img/file.png");
有没有办法阻止它像这样转换它?我的页面上有JS查找RGB值,我不想在某些hacky函数中将这些字符串转换为RGB。
答案 0 :(得分:27)
默认情况下,除非您强制Sass使用#{}
或变量进行插值,否则Sass不会从其十六进制值转换文字颜色值。
使用插值将返回您感兴趣的值的“to_sass”版本。例如,#{ #fff }
将插值为“white”。这也发生在变量替换期间:当用作变量时,颜色文字被转换为Color对象,然后将“to_sass”编辑到样式表中。
此外,您可以指定样式选项compressed
,它将返回较少字节长度的版本(即red
而不是#f00
)。由于white
长度为5个字符且#fff
仅为4个字符,因此您的规则将替换为#fff
。
使用变量时无法关闭反向HTML4颜色名称转换。作为解决方法,您可以将颜色变量声明为字符串,然后在具有unquote()
函数的样式中使用。
$color: '#fff';
.white { color: unquote($color) }