我有一个ASP.NET MVC Web应用程序,我计划使用Bootstrap(因为它是默认MVC模板的一部分)。我知道自定义引导程序看起来非常简单,以及如何在定义主题颜色的覆盖后创建我自己的导入site.scss
的{{1}}文件来覆盖主题颜色:
bootstrap.scss
然后将其编译为$theme-colors: (
primary: #123456; // whatever colour I want here
);
@import "bootstrap.scss";
并提供给我们的客户。
但是,我们的客户需要能够定义自己的主题。因此,如果他们想要蓝色按钮,他们会得到蓝色按钮,如果他们想要红色,他们会变红。使用Bootstrap有没有任何支持的方法?
我考虑过创建一组有限的彩色主题供他们选择,并为每个主题分别设置site.css
个文件,然后提供适当的.scss
,但我想利用ASP.NET捆绑功能,这是在应用程序启动时完成的,所以我必须在每个主题选项中都有一个单独的包。
另外,我注意到编译.css
时会得到一个css变量列表:
boostrap.scss
并简要地认为在整个应用样式时会使用这些,因此我可以从单独的样式表覆盖以设置我的自定义颜色。遗憾的是,在:root {
--blue: #007bff;
--indigo: #6610f2;
...
--primary: #123456;
}
文件的其余部分中使用十六进制代码而不是相应的css变量。为了证明这一点,我找到并替换列为css vars的所有颜色,并且我能够从后续样式表中覆盖它们,本质上在运行时提供主题。但这不是一个很好的解决方案,因为它需要编辑已编译的css文件(在开发过程中会频繁覆盖)。
有没有人有更好的想法?
答案 0 :(得分:0)
我认为您需要使用JavaScript或jQuery。当客户端更改颜色时,使用JavaScript或jQuery将颜色分配给变量并在CSS中进行更改。