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



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
  3. 单击保存后,模板将修改由皮肤加载的门户级主题.css文件
  4. 对模块的任何更改都会导致CSS文件的重写
  5. 我可以更新c#razor模板来添加、删除或修改规则或转换输入的值

这是可能的还是太复杂了?有更好的方法吗?

所以我已经离开很长时间了,我希望我的答案仍然会有所帮助。。。

我们有一个非常简单的解决方案:(。如果您查看bootstrap即时模板,您会看到我们将各种类添加到<body>标记中。

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

这样,我们就可以使用主题的普通CSS,并根据门户27等规则进行更改。

最新更新