Sass在我的css文件中输出#000和#fff作为黑白颜色值。例如:
$color: #000;
.box {
color: $color;
}
输出到:
.box {
color: black;
}
不应输出十六进制值?
答案 0 :(得分:14)
Sass如何处理颜色取决于您使用的版本。但是有一些常见的行为:
rgba(0, 0, 0, 100)
,则Sass会将其转换为black
或#000
)#000000
将输出为#000
)。Sass 仅在将颜色用作变量时或者如果它们不是上述三种格式之一时转换颜色:
$color-hex: #000000;
$color-keyword: black;
$color-rgb: rgb(0, 0, 0);
$color-hsl: hsl(0, 0, 0);
.box-hex {
color: $color-hex;
background: #000000;
}
.box-keyword {
color: $color-keyword;
background: black;
}
.box-rgb {
color: $color-rgb;
background: rgb(0, 0, 0);
}
.box-hsl {
color: $color-hsl;
background: hsl(0, 0, 0);
}
输出:
.box-hex {
color: black;
background: #000000;
}
.box-keyword {
color: black;
background: black;
}
.box-rgb {
color: black;
background: black;
}
.box-hsl {
color: black;
background: black;
}
从3.3到3.4的唯一变化是,当使用变量时,Sass将保留颜色的格式......除非它是关键字,十六进制或rgba格式之外的其他内容。
.box-hex {
color: #000000;
background: #000000;
}
如果您必须具有特定格式,则可以将其转换为字符串:
$color: #{'#F00'}; // or `unquote('#F00')`
.foo {
color: $color;
}
输出:
.foo {
color: #F00;
}
请记住,当您执行此操作时,您的“颜色”将无法使用lighten()
或darken()
等颜色处理功能。