有什么办法可以根据html元素上的类来设置我的颜色变量吗?或者以任何其他方式实现同样的目标?
html {
&.sunrise {
$accent: #37CCBD;
$base: #3E4653;
$flat: #eceef1;
}
&.moonlight {
$accent: #18c;
$base: #2a2a2a;
$flat: #f0f0f0;
}
}
Run Code Online (Sandbox Code Playgroud)
cim*_*non 20
这是基本的主题.您可能想要使用mixin或include来在单个CSS文件中执行多个主题.这就是你如何使用包括:
_theme.scss
section.accent {
background: $accent;
}
.foo {
border: $base;
}
.bar {
color: $flat;
}
Run Code Online (Sandbox Code Playgroud)
main.scss
html {
&.sunrise {
$accent: #37CCBD;
$base: #3E4653;
$flat: #eceef1;
@import "theme";
}
&.moonlight {
$accent: #18c;
$base: #2a2a2a;
$flat: #f0f0f0;
@import "theme";
}
}
Run Code Online (Sandbox Code Playgroud)
您可以轻松制作一个以3种颜色作为参数的mixin来代替include:
@mixin theme($accent, $base, $flat) {
// .. do stuff ..
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,Sass/Scss文件需要编译成Css文件,以便在您的网络浏览器中得到支持。
由于css文件不支持变量,所以只能在scss模板中设置变量值,因为sass编译器会替换var。(在每个位置,都使用了 var.),具有给定的值。
这意味着,根据Html文件中包含的类,它无助于更改变量的颜色,因为Css文件将不包含任何变量。
你可以做这样的事情的唯一方法是:
| 归档时间: |
|
| 查看次数: |
14111 次 |
| 最近记录: |