css - 基于 HTML 元素的类动态更改 bulma sass 变量?

标签 css sass bulma

我正在尝试使用 bulma 实现深色和浅色主题。我想到的方法是使用 vue 动态地将类分配给元素(例如 .dark-theme.light-theme),然后根据这些主题使用不同的颜色。但是,根据 main.scss 中的类选择器自定义 bulma 变量似乎不起作用,例如:

.dark-theme {
    $primary: /* some colour; */
}
.light-theme {
    $primary: /* some other colour; */
}

@import "~bulma/bulma"

我能找到的最接近的问题是 this one但该解决方案对我不起作用,因为我需要根据类选择器修改实际的 $ 变量。

如果我的方法很愚蠢并且有更好的方法,请告诉我。请注意,我的 bulma 设置似乎工作正常,并且更改选择器外部的变量可以按预期工作。

最佳答案

您可以从 bulma scss 文件编译两个 css 文件,一个用于深色模式,一个用于浅色模式。然后,如果启用了深色模式,只需使用深色 css 文件或 use the method in the first comment 重新加载页面即可。无需重新加载即可更改主题。

Here它建议交换 $scheme-main$scheme-invert 值以生成暗模式。

我没有使用 Vue 的经验,但我知道可以用 JavaScript 实现这一点。

关于css - 基于 HTML 元素的类动态更改 bulma sass 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68422633/

相关文章:

css - 无法覆盖用户代理设置的按钮样式

html - 如何使用 Bulma 的默认 $ 变量

javascript - div 在鼠标移动时淡入,不淡出

javascript - 文档流和 CSS 样式 : Hiding elements properly

jquery - HTML 切换开关状态

javascript - 在 pdf.js 查看器中呈现时,在 pdf 文档上按文本位置添加 HTML/CSS 覆盖

typescript - 无法导入 CSS/SCSS 模块。 typescript 说 "Cannot Find Module"

css - PrimeNg 展开容器的行全宽

vue.js - bulma 无法使用 vue-cli

javascript - 如何将样式从 Markdown 文件应用于 Gatsby 构建的网站的数组?