我有一个全局SCSS变量,即 $ accent:#3a99d5; ,我想根据@mixin中的颜色选择覆盖此变量,请参阅下面的代码以获得更清晰。
使用以下代码,我可以切换" .main-header "的颜色。基于班级名称"绿色"或"橙"附加在正文中(请参阅HTML块)但无法覆盖 $ accent ,这是控制主题所有主要颜色的主要变量。
我不确定我的代码。请帮我解决这个问题,并提前感谢。
/ ===== SCSS == /
$accent:#3a99d5; /*global variable*/
$themes: ( green: #90c140, orange: #bf5700 ); /*color set*/
@mixin theme($name,$color) {
@if $name == green {
$accent: #90c140 !global;
}
@else {
$accent: #bf5700 !global;
}
.#{$name} {
.main-header {
background: $color;
}
}
}
@each $key, $value in $themes {
@include theme($key, $value);
}
/ ==== HTML ===== /
<body class="green"> /*how I'm using color class from my SCSS*/
<div class"main-header">
</div>
</body>