css - 用于主题的范围 SCSS 变量

标签 css sass

我有一组不同主题的调色板,如下所示:

$primary: red; 
$secondary: blue;

.theme-2 { $primary: green; $secondary: yellow; }

//..
//some random scss file that has typography class names
.cool-text { color: $primary; }

是否有可能做到这一点,无论应用到容器的类名如何使用为其定义的可变调色板颜色?

例如:

<div class="theme-2">
   <p class="cool-text"> cool </p> // should be green
</div>


<p class="cool-text"> cool </p> //should be red

最佳答案

因为 Sass 变量是在运行前编译的,它们不能是上下文相关的,所以你提供的例子是不可能的。

这里有一些有用的阅读 Material 和替代示例: https://webdesign.tutsplus.com/articles/understanding-variable-scope-in-sass--cms-23498

我还阅读了 native CSS 变量,它们可以完全按照您的意愿执行操作,并且在除 IE/Edge 之外的大多数浏览器中都获得了支持: https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables

关于css - 用于主题的范围 SCSS 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40748622/

相关文章:

css - 尝试编译 sass 时出现无效 css 错误

jquery - 滚动后如何激活 animate.css

css - 如何访问动态嵌套结构中最后一个元素的样式属性?

html - 为什么表格的列这么宽?

html - SASS 样式在保存 scss 文件时适用,但在浏览器刷新时不适用

css - scss\sass中*::selection{}怎么写?

javascript - 无法使用 Javascript 更改 span 元素的文本

html - 如何使用 CSS 水平分布元素?

html - 关于 iframe 和水平滚动的另一个问题

css - webpack : 1 for js+css and 1 for css only 中的 2 个包