Sass SCS是否根据父类更改变量?

Sass SCS是否根据父类更改变量?,sass,Sass,我有这个问题,在我的工作中,我们有一个包含数千行scss代码和几个变量的基础项目。当一个网站需要这个基础时,一切都很好,发展很快。我可以更改$generalColor变量,并应用正确的颜色 当同一个项目中的某个地方需要一组新的颜色(变量)时,问题就来了(微型站点)。然后通常需要搜索使用$generalColor的每个地方,并添加如下内容: $generalColor_SOMETHING: #453543; .newExtraSetOfColor & { background: $

我有这个问题,在我的工作中,我们有一个包含数千行scss代码和几个变量的基础项目。当一个网站需要这个基础时,一切都很好,发展很快。我可以更改
$generalColor
变量,并应用正确的颜色

当同一个项目中的某个地方需要一组新的颜色(变量)时,问题就来了(微型站点)。然后通常需要搜索使用
$generalColor
的每个地方,并添加如下内容:

$generalColor_SOMETHING: #453543;
.newExtraSetOfColor & {
    background: $generalColor_SOMETHING;
}
对于每个变量,每一组新的颜色。如果有很多微型站点/颜色集,那将是一场噩梦


有更好的方法吗?(类似javascript?

您可以通过mixin执行类似的操作:

$colors:(
//默认颜色集
默认值:(
红色:#ff0000,
绿色:#ff0000,
蓝色:#ff0000
),
//彩色蜡笔
蜡笔:(
红色:#ff6961,
绿色:#77dd77,
蓝色:#aec6cf
)
);
@混合颜色($color){
颜色:映射获取(映射获取($colors,默认值),$color);
.颜色-粉彩和{
颜色:map get(map get($colors,pastel),$color);
}
}
h1{
@包括颜色(红色);
}
输出:

h1{
颜色:#ff0000;
}
.颜色-粉彩h1{
颜色:#ff0000;
}

您可以使用混音器执行以下操作:

$colors:(
//默认颜色集
默认值:(
红色:#ff0000,
绿色:#ff0000,
蓝色:#ff0000
),
//彩色蜡笔
蜡笔:(
红色:#ff6961,
绿色:#77dd77,
蓝色:#aec6cf
)
);
@混合颜色($color){
颜色:映射获取(映射获取($colors,默认值),$color);
.颜色-粉彩和{
颜色:map get(map get($colors,pastel),$color);
}
}
h1{
@包括颜色(红色);
}
输出:

h1{
颜色:#ff0000;
}
.颜色-粉彩h1{
颜色:#ff0000;
}
它与一起工作!全局标志()

它与一起工作!全局标志()


因此,我应该为每个使用该颜色的属性进行混合<代码>颜色,
背景
边框
等等。@distante我恐怕是这样。Sass中没有动态变量,所以我应该为每个使用该颜色的属性进行混合<代码>颜色,
背景
边框
等等。@distante我恐怕是这样。Sass中没有动态变量。
$theme-color: black;

.my-red-theme {
    $theme-color: red !global;
}