问题描述
我有一个容器 Div <div class="pageContainer">
。在里面,我有几个带有专门 CSS 的“页面”。
<div class="pageContainer">
<div class="pageView">
<div class="pageView">
...
<div class="pageView">
</div>
我有一个 .less 文件,其中包含使 pageView
工作的所有各种花哨样式:
\\pageView.less
.pageView a {...}
.pageView .item {...}
...
我们还允许用户在文本框中输入自定义样式。所以用户可能会输入:
.pageView .myCustomDiv {...}
现在,我想添加几个不同版本的 .pageView
。例如,“夜间模式”或“大字体”模式。我想出的当前解决方案是为每个文件创建一个单独的 .less 文件,但在它前面加上一个包含类,如下所示:
\\pageView_nightMode.less
.nightMode {
.pageView a {...}
.pageView .item {...}
}
...
我将这些 .pageView
变体的所有导入到通用 pageView.less
文件中,因此现在我可以添加一个按钮来添加/删除该容器类上的一个类,以变成 <div class="container nightMode">
并且所有页面都将转换。然而,由于不够特殊和失去 CSS 优先级(或添加 !important 到所有内容,这也是一个麻烦),用户现在已经失去了应用他们自定义样式的能力,而无需预先添加和复制他们自己的 CSS:
.nightMode .pageView .myCustomDiv {...}
.largeFont .pageView .myCustomDiv {...}
问题是,我有几个用户已经创建了这样的文档,我不能合理地让每个人突然停止使用他们的自定义样式。
是否有更好的解决方案允许通过单击按钮交换“基本”CSS(最好存储在单独的 .less 文件中),但仍允许我的用户的现有代码稍后覆盖这些样式?我曾考虑过在渲染之前“劫持”他们的代码并自己添加额外的类,但这似乎比实际需要的更混乱。
如果重要的话,我正在使用 Javascript 和 React.js 来做这件事。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)