【问题标题】:Change SASS or LESS variable value at runtime [closed]在运行时更改 SASS 或 LESS 变量值 [关闭]
【发布时间】:2018-05-03 23:33:14
【问题描述】:
我实际上是在尝试使用 ASP MVC 制作一个 Web 应用程序来支持一些动态颜色设置。例如,管理员可以为特定用户组设置主题颜色。当管理员保存新的颜色代码时,这些新的颜色代码需要保存在 CSS 中。因此,用户登录后,他们将看到基于他们的组的不同颜色。
为此,我正在考虑使用 SASS 或 LESS。如果我可以轻松地将 SASS 或 LESS 中的变量设置为保存操作中的新颜色代码,那会更容易。
所以我的问题是......
如何从 SASS 或 LESS 文件中检索变量并为变量设置新值?有这方面的图书馆吗?我已经检查了 BundleTransformer 和 dotless。但是我还是不知道这些库是否支持处理变量。
如果我可以更新 SASS 或 LESS 中的变量,是否会在任何更改时编译?
我可以为客户端缓存的 CSS 做什么?
如果你们能给我更好的方法或其他方法,我将不胜感激。
谢谢,
【问题讨论】:
标签:
css
asp.net-mvc
sass
less
【解决方案1】:
如果您只针对使用现代浏览器的用户,CSS 具有实验性变量支持(请参阅Can I use.. 数据)。这是来自 MDN 的示例:
:root {
--main-bg-color: pink;
}
body {
background-color: var(--main-bg-color);
}
如果您采用这种方法,您只需将颜色变量插入到一个简单的样式表中,其余的工作由 CSS 完成:
<style>
:root {
--group-colour: {{ groupColour }}
}
</style>
<link rel="stylesheet" href="/path/to/stylesheet/with/variables.css">
有关 CSS 变量的更多信息,请参阅 MDN 的 CSS var() documentation。