Asp.net DOTLESS-用户特定变量

Asp.net DOTLESS-用户特定变量,asp.net,css,asp.net-mvc,less,dotless,Asp.net,Css,Asp.net Mvc,Less,Dotless,我正在编写一个ASP.NET MVC应用程序,我计划使用无点编译器减少样式表的使用。我希望使我的应用程序可蒙皮,并发现我可以使用较少的变量来自定义样式 如何最好地实现这一点 我希望能够覆盖嵌套层次结构中的变量。我有一个站点范围的variables.less,它包含所有变量。现在,我希望允许每组客户都有一个特定的覆盖。然后,我希望每个客户都有自己的覆盖,但如果未定义某些变量,则使用“组默认值”。然后我需要“用户”覆盖(每个客户有几个用户) 我想到的另一个选择是创建一个variables.defau

我正在编写一个ASP.NET MVC应用程序,我计划使用无点编译器减少样式表的使用。我希望使我的应用程序可蒙皮,并发现我可以使用较少的变量来自定义样式

如何最好地实现这一点

我希望能够覆盖嵌套层次结构中的变量。我有一个站点范围的variables.less,它包含所有变量。现在,我希望允许每组客户都有一个特定的覆盖。然后,我希望每个客户都有自己的覆盖,但如果未定义某些变量,则使用“组默认值”。然后我需要“用户”覆盖(每个客户有几个用户)

我想到的另一个选择是创建一个variables.default.less文件,该文件定义所有变量。然后,我创建一个“覆盖”文件,仅重新定义更改的变量。这允许我创建一个特定于用户的less文件,以包含所有嵌套变量重写

示例:

variables.default.less

@bgcolor: #ffffff;
@textcolor: #000000;
@fontsize: 12px;
@logo: "site-default.png";
variables.customergroup01.less

@bgcolor: #cccccc;
@textcolor: #999999;
variables.customer99.less

@logo: "customer-logo99.png";
variables.user1234.less

@font-size: 18px;
现在,如果客户55登录(他属于customergroup01),他将获得以下样式表

// Import default vars
@import "variables.default.less";

// Import customized vars
@import "variables.customergroup01.less";

// This is the actual stylesheet
@import "styles.less"; 
// Import default vars
@import "variables.default.less";

// Import customized vars
@import "variables.customergroup01.less";
@import "variables.customer99.less";
@import "variables.user1234.less";

// This is the actual stylesheet
@import "styles.less"; 
现在,如果用户1234(customer 99和customergroup01),他将获得以下样式表

// Import default vars
@import "variables.default.less";

// Import customized vars
@import "variables.customergroup01.less";

// This is the actual stylesheet
@import "styles.less"; 
// Import default vars
@import "variables.default.less";

// Import customized vars
@import "variables.customergroup01.less";
@import "variables.customer99.less";
@import "variables.user1234.less";

// This is the actual stylesheet
@import "styles.less"; 
这是一个可用的模式吗? 我是动态渲染自定义的less文件还是创建预编译文件

谢谢大家!

这是一个可用的模式吗

我想是的。您的需求是根据用户创建不同的样式表,这似乎是一种明智的方法。我的实现略有不同。我生成一个包含所有核心样式的“基本”样式表,然后创建一个包含自定义样式的单独的“主题”样式表(这些样式都有自己的类前缀
t-

示例

无站点

@import "variables.less";
@import "styles.less"; 
无主题

@import "theme-variables.less";

// theme class
.t-btn-submit {
    background-colour: @t-btn-submit-bg;
}

这种方法很好地分离了可变样式和核心样式之间的关系。我知道如果我改变核心样式(可能删除类),它不会破坏主题,因为它们有单独的类。它还简化了流程,使更新或更改时更易于管理。

您曾经解决过您的难题吗,您愿意与usconsider分享阅读和更改吗