Sass 将黑色自动转换为 #000000
Sass converts black automatically to #000000
我目前正在编写一个 mixin 以轻松地在一行中添加多种字体。在 mixin 中,我写下了所有我想使用的权重:
$font-weights: (
"hairline": 100,
"thin": 200,
"light": 300,
"regular": 400,
"medium": 500,
"semibold": 600,
"bold": 700,
"heavy": 800,
"black": 900,
);
$main-font: "Lato";
@include font-list($main-font,Hairline Thin Light Regular Medium SemiBold Bold Heavy Black, normal, $font-weights);
@include 中给出的权重列表中的最后一个权重是 "black",所有链接都运行良好,但是我使用的 mixin 在最后一个值上给出了错误,因为它以某种方式转换"black" 在使用之前自动已经到#000000。
有什么方法可以让 Sass 不这样做吗?
混音:
@mixin font-include($name, $file, $weight, $type) {
@include font-face("#{$name}", font-files("#{$file}.woff", "#{$file}.ttf"), "#{$file}.eot", $weight, $type);
}
@mixin font-list($name,$weights,$type,$font-weight){
@for $i from 1 through length($weights) {
@include font-include($name,#{$name}-#{nth($weights,$i)},map-get($font-weight,#{to-lower-case(nth($weights,$i))}),$type);
}
}
Compass给出的错误是:
$string: #000000 is not a string for `to-lower-case'
在所有权重上使用 mixin 中的 unquote 修复了它。
(并添加了斜体字体功能)。
@mixin font-list($name,$weights,$type,$font-weight){
$italic: '';
@if $type == 'italic'{
$italic: 'Italic';
}
@for $i from 1 through length($weights) {
$weight: unquote("#{nth($weights,$i)}");
@include font-include($name,#{$name}-#{nth($weights,$i)}#{$italic},map-get($font-weight,#{to-lower-case($weight)}),$type);
}
}
我目前正在编写一个 mixin 以轻松地在一行中添加多种字体。在 mixin 中,我写下了所有我想使用的权重:
$font-weights: (
"hairline": 100,
"thin": 200,
"light": 300,
"regular": 400,
"medium": 500,
"semibold": 600,
"bold": 700,
"heavy": 800,
"black": 900,
);
$main-font: "Lato";
@include font-list($main-font,Hairline Thin Light Regular Medium SemiBold Bold Heavy Black, normal, $font-weights);
@include 中给出的权重列表中的最后一个权重是 "black",所有链接都运行良好,但是我使用的 mixin 在最后一个值上给出了错误,因为它以某种方式转换"black" 在使用之前自动已经到#000000。
有什么方法可以让 Sass 不这样做吗?
混音:
@mixin font-include($name, $file, $weight, $type) {
@include font-face("#{$name}", font-files("#{$file}.woff", "#{$file}.ttf"), "#{$file}.eot", $weight, $type);
}
@mixin font-list($name,$weights,$type,$font-weight){
@for $i from 1 through length($weights) {
@include font-include($name,#{$name}-#{nth($weights,$i)},map-get($font-weight,#{to-lower-case(nth($weights,$i))}),$type);
}
}
Compass给出的错误是:
$string: #000000 is not a string for `to-lower-case'
在所有权重上使用 mixin 中的 unquote 修复了它。
(并添加了斜体字体功能)。
@mixin font-list($name,$weights,$type,$font-weight){
$italic: '';
@if $type == 'italic'{
$italic: 'Italic';
}
@for $i from 1 through length($weights) {
$weight: unquote("#{nth($weights,$i)}");
@include font-include($name,#{$name}-#{nth($weights,$i)}#{$italic},map-get($font-weight,#{to-lower-case($weight)}),$type);
}
}