2016-01-02 2 views
1

У меня есть подмешать с именованными цветами:Как конвертировать именованный цвет в HEX с помощью SCSS?

@mixin color-classes-rendering { 
    $colors: (
     rebeccapurple 
    ); 

    @each $value in $colors { 
     .#{nw}-#{nth($value, 1)}#{" > span"} { 
      background-color: nth($value, 1); 
     } 
    } 
} 

Здесь скомпилированный CSS:

.nw-rebeccapurple > span { 
    background-color: rebeccapurple; 
} 

Я не знаю, почему, но "rebeccapurple" не показанный в Chrome на Android. Можно ли преобразовать его в этом одно:

.nw-rebeccapurple > span { 
    background-color: #663399; 
} 

ответ

1

мое решение поставить значение HEX каждого имени цвета вручную, как это:

@mixin color-classes-rendering { 
    $colors: (
     rebeccapurple #663399, 
     black   #000000 
    ); 

    @each $value in $colors { 
     .#{nw}-#{nth($value, 1)}#{" > span"} { 
      background-color: nth($value, 2); 
     } 
    } 
} 
2

Хотя Sass действительно обеспечивает функции для извлечения индивидуальные значения R, G и B для любого заданного цвета, он не обеспечивает удобный способ преобразования этих значений в шестнадцатеричный. Вам будет проще преобразовать его в формат rgb().

$color: rebeccapurple; 

.foo { 
    color: #{'rgb(#{red($color)}, #{green($color)}, #{blue($color)})'}; 
} 

Выход:

.foo { 
    color: rgb(102, 51, 153); 
} 

Смотрите также: Why does Sass change the format of my colors?


Я хотел бы также отметить, что то, что вы написали до сих пор было бы лучше подходит для отображения:

$colors: (
    'rebeccapurple': #639, 
    'black': #000 
); 

@each $name, $color in $colors { 
    .nw-#{$name} > span { 
     background-color: $color; 
    } 
} 

O utput (сжатый формат):

.nw-rebeccapurple > span { background-color: #639; } 

.nw-black > span { background-color: #000; } 
+0

Он работает, если я указываю значение цвета в переменной, но как его реализовать на карте? – max

+0

Я не понимаю вопроса. Вы выполняете циклическое преобразование так же, как и с переменной. – cimmanon

+0

Я имею в виду, что если я не хочу помещать этот именованный цвет в переменные и просто хочу использовать их на карте? В моем случае у меня есть список с примерно 10 цветами и не хочу использовать переменные для каждого из них. – max