2015-06-03 3 views
2

В настоящее время я пишу mixin, чтобы легко добавлять несколько шрифтов в одну строку. В Mixin я пишу все веса я хочу использовать так:Sass преобразует черный автоматически в # 000000

$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 является «черным», все ссылки идут хорошо, но я Mixin использование дает ошибку при последнем значении, потому что оно каким-то образом преобразует «черный» автоматически, прежде чем использовать уже до # 000000.

Есть ли способ сделать Сасс не так?

Mixin (ы):

@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); 
    } 
} 

Ошибка задается Компас:

$string: #000000 is not a string for `to-lower-case' 

ответ

0

Fixed его с помощью Unquote в Mixin на всех весов.

(И добавлена ​​функциональность для курсивных шрифтов).

@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); 
    } 
}