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