Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables SCSS/SASS:如何在每个循环中创建变量_Variables_Sass_Each - Fatal编程技术网

Variables SCSS/SASS:如何在每个循环中创建变量

Variables SCSS/SASS:如何在每个循环中创建变量,variables,sass,each,Variables,Sass,Each,在我的SASS代码中,我有一个包含所有颜色的数组,然后我创建了一个each循环来从这些颜色创建css变量,最后我想做另一个循环来创建这些css颜色的每个SASS变量。。。让我告诉你: /************************************************************ **********************库勒************************* **********************************************

在我的SASS代码中,我有一个包含所有颜色的数组,然后我创建了一个each循环来从这些颜色创建css变量,最后我想做另一个循环来创建这些css颜色的每个SASS变量。。。让我告诉你:

/************************************************************
**********************库勒*************************
************************************************************/
$colors:(
“粉红”:#E20071,
“蓝色”:#00A3DA,
“灰色”:#939394,
“黑暗之雷”:#939394,
“黄色”:#FEA347,
“绿色”:#4CA66B,
“白色”:#FFFFFF,
“黑色”:,
);
:根{
@每个$key,$value,以$colors表示{
--#{$key}:#{$value};
}
}
$pink:var(--pink);
$blue:var(--blue);
$gray:var(--gray);
$yellow:var(--yellow);
$green:var(--green);
$white:var(--white);
$black:var(--black);
$darkGray:var(--darkGray);
所以我试过这样的方法:

@each $key, $value in $colors {
    $#{$key} : var(--#{$key});
}
但它给了我一个错误:
在“…ue in$colors{”:预期1个选择器或at规则之后的CSS无效,在/home/simon/Documents/HL3/URSELF/app/src/variables.scss(第28行,第32列)

所以我的问题是有可能实现这样的功能吗?;创建变量真的很有帮助,如果我想删除/添加一个变量,我只需要在数组中执行,然后所有代码都会自动更新…

//分配颜色
$DeepKoamaru:rgba(16,38,111,0.85);
$Mariner:rgba(411281850.85);
$Gumbo:rgba(136160168,0.85);
$Blackberry:rgba(77,1,53,0.85);
$RoseBudCherry:rgba(150,0,57,0.85);
$花束:rgba(140102127,0.85);
$Chocolate:rgba(60,0,0,0.85);
$Darkburgy:rgba(107,0,15,0.85);
$茜素红:rgba(165、107、104、0.85);
$品牌颜色:$DeepKoamaru、$Mariner、$Gumbo、$Blackberry、$RoseBudCherry、$Bouquet、$Chocolate、$DarkBurgundy、$AlizarinCrimson;
@从1美元到9美元{
.color-#{$i}-bar{
标题{
.标志{
svg{
颜色:N($brand colors,$i);
}
}
.菜单{
svg{
颜色:N($brand colors,$i);
}
.导航项目{
保险商实验室{
李{
a{
&:悬停{
颜色:N($brand colors,$i);
}
}
}
}
}
}
}
}
}
如注释中所述,Sass不支持创建动态变量。 如果在
$colors
映射中找到CSS变量,我想我会使用一个函数来返回它

$colors : (
    "pink"     : #E20071,
    "blue"     : #00A3DA,
    "gray"     : #939394,
    "darkGray" : #939394,
    "yellow"   : #FEA347,
    "green"    : #4CA66B,
    "white"    : #FFFFFF,
    "black"    : #1B1B1B,
);

:root{
    @each $key, $value in $colors {
        --#{$key} : #{$value};
    }
}

@function color($name){
    @if not map-get($colors, $name+''){
        @error "Color `#{$name}` not found in map $colors";
    }
    @return var(--#{unquote($name)});
}

.class-name {
    color: color(pink);  //  var(--pink);
    color: color(nope);  //  throws error: "Color `nope` not found in map $colors"
}

//  note! we stringify $name (the +'' part) to ensure Sass does not interpret
//  it as a color – e.g. pink represents the hex value #ffc0cb  

你的代码示例运行得很好,看看。你使用的是什么Sass编译器和Sass的哪个版本?哦,看起来我误解了你的问题,你想创建scss变量,而不是CSS变量。Sass不支持动态变量创建。可能是@Arkellys的重复,我的错,我在寻找simi时没有找到它lar@Flying,好的,谢谢你的回答,遗憾的是,我期待着这样一个否定的答案,但好的,我会做两次声明;)谢谢你的回答,但这并不是我真正想要做的…我已经有了一个我所有颜色的数组,我已经在它们上做了一个数组来创建我不同的css变量…但我想从SASS中的数组中动态创建变量…正如Flying所说,这是不可能的…嗯,我知道你在这里做了什么,谢谢你的帮助swer,没想到它可以有函数,我来看看;)