从服务器端设置CSS颜色

oo7oh9g9  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(147)

背景

我们目前在Optimizely(ASP .NETMVC)中有一个大型的客户端站点,其中托管了许多较小的站点,用于他们的区域市场和大型重要客户。
目前,有各种各样的主题是由我们的前端人员(SASS -〉CSS)和Optimizely中的每个网站的下拉菜单,允许我们设置主题-它只是在主布局中呈现这个值,因此页面请求相应的样式表。
由于开发整个网站的这些主题所需的时间,客户要求,对于较新的网站,我们有能力设置一些基本颜色(主要,次要和第三),可以设置,每个网站,在优化。
因此,对于那些想要一个完全品牌化的网站的客户来说,他们可以付费并定制主题(颜色和结构),其余的客户将使用通用主题(结构),颜色取自Optimizely。

问题是

是否有一个简单的方法来获得颜色定义的服务器端到transpiled CSS。添加颜色的网页是不是一个问题,如果需要,但我看到没有办法让CSS拿起这一点。(我试图添加一个颜色变量中定义的SASS到主布局,但CSS没有拿起它作为预期)。

可能性

显然,我可以把特定的CSS类渲染到页面上,设置颜色属性并标记为!important来覆盖SASS中设置的颜色。但是,我们显然在SASS中使用了变量,所以颜色不必在一千个地方定义(或覆盖)。
我们可以在运行时修改CSS当颜色在CMS中改变(唉,CDN).或者使用Javascript改变颜色后,页面已经加载(这意味着原来的颜色将可见,直到JS踢).这两种方法我都可以做,但他们似乎笨重.
这似乎是一件“应该”很简单的事情,但我没有在网上找到任何帮助。
这是任何人都必须处理的事情吗?有什么聪明的解决方案是我没有想到的吗?干杯

46scxncf

46scxncf1#

最后我们按照@Pete的建议用CSS变量解决了这个问题。我们允许在CMS中输入一个十六进制ref来表示颜色,将其转换为.net Color,并创建了一个扩展方法来提取单个的H、S和L分量。这些都作为CSS变量的值添加到视图中,SCSS首先使用这些变量来定义颜色或操作它。

相关问题