有没有一种方法可以使用2sxc和razor模板创建(和更新)样式表?

问题描述 投票:0回答:1

DNN 9.3.2 / 2sxc 10.25.2

我有一个DNN主题,用于某种类型的子门户-最终我将有8个子门户。每个子门户都有相同的布局,但是它们各自的主题将具有不同的颜色。因此,我将不得不使用CSS规则和每个主题的颜色来创建样式表。我知道有两种相对简单的方法可以做到这一点:

  1. 修改每个门户网站的portal.css以覆盖主题或(简单,但可能难以维护更新)
  2. 为每个门户构建自定义主题(过度使用)
  3. 使用SCSS创建具有8个不同变量文件的模板(可以正常工作,但不允许内容编辑器进行修改)

所以,我很好奇2sxc是否有更聪明的方法可以使我不仅易于维护,而且门户网站的内容编辑器也易于维护。

我想创建2sxc内容模块,并为拾色器提供一些不同的字段,这将使我(和我的内容编辑器)可以简单地打开2sxc编辑模式(在主页上),填写所有颜色字段,然后剃刀模板将输出带有颜色的CSS模板,以覆盖DNN皮肤上的主题样式。我知道我可以使用内联CSS来做到这一点,但这意味着该模块必须出现在每个页面上,并且我也希望避免内联CSS。

所以我的想法是它将像这样工作:

  1. 在每个门户网站的单个页面上具有2sxc内容模块
  2. 编辑模态>字段将类似于:原色(rgba),辅助色(rgba),灰色(rgba)等
  3. 一旦单击保存,模板将修改由皮肤加载的门户网站级theme.css文件
  4. 对模块的任何更改都将导致CSS文件的重写。
  5. 我可以更新c#剃刀模板以添加,删除或修改规则或转换输入的值。

这可能还是太复杂?有没有更好的方法解决此问题?

css dotnetnuke 2sxc
1个回答
0
投票

所以我已经离开了很长一段时间,希望我的回答仍然对您有帮助...

我们有一个非常简单的解决方案:)。如果您签出bootstrap instant template,您会看到我们在<body>标签中添加了各种类。

https://github.com/2sic/dnn-theme-bootstrap4-instant/blob/master/controls/body-css-classes.ascx#L86-L91

这样,我们可以仅将主题的常规CSS与基于Portal-27等的规则一起使用,以随门户网站而变化。

© www.soinside.com 2019 - 2024. All rights reserved.