为什么萨斯改变我的颜色的格式?
Sass在我的css文件中输出#000和#fff作为黑白颜色值。 例如:
$color: #000; .box { color: $color; }
输出到:
.box { color: black; }
不应该输出hex值?
Sass如何处理颜色取决于您使用的版本。 但是有一些常见的行为:
- 只要有可能,Sass将始终最大化向后兼容性。 由于关键字 , hex和rgba具有最广泛的浏览器支持,所有颜色将被转换为这三种格式之一,优先于关键字或hex。 只有当颜色具有透明度(如果指定
rgba(0, 0, 0, 100)
,Sass会将其转换为black
或#000
),rgba格式才会被使用。 - 如果Sass必须在使用关键字或hex格式之间进行select,则它将使用的取决于输出设置。 紧凑或压缩模式将始终转换为hex,其他格式将使用关键字。
- Sass将在压缩模式下将hex颜色转换为3位格式(例如
#000000
将被输出为#000
)。
Sass 3.3以上
Sass 仅在用作variables时才转换颜色,或者如果它们不是上述三种格式之一:
$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; }
Sass 3.4及更高版本
从3.3到3.4的唯一变化是,当使用variables时,Sass将保留你的颜色格式,除非它是关键字,hex或rgba格式以外的格式。
.box-hex { color: #000000; background: #000000; }
但是如果我真的需要一个特定的格式呢?
如果你绝对必须有一个特定的格式,你可以把它变成一个string:
$color: #{'#F00'}; // or `unquote('#F00')` .foo { color: $color; }
输出:
.foo { color: #F00; }
只要记住,当你这样做,你的“颜色”将不会与颜色处理function,如lighten()
或darken()
。
没有。
black
, white
,其他145个颜色名称是CSS标准的一部分:
http://www.w3schools.com/cssref/css_colorsfull.asp
它们被所有浏览器正确处理,同时他们更容易掌握CSS开发人员。
所以他们很好。