【发布时间】:2017-10-06 19:47:42
【问题描述】:
我设计了一个网站,以便更改两种用户输入的颜色会改变整个网站的配色方案。
实现这一点的最佳方法是什么。我知道我必须将项目保存在数据库中并在每次用户登录时提取,以便在每次登录时实现配色方案。
但目前我更担心用户更改 html 颜色值后会立即进行实时更改。
我知道一个选项,我可以将 CSS 类添加到每个会更改的组件中,例如 ....primaryColor 和 .secondaryColor。然后使用该类更改所有元素。 React 或其他 CSS/Javascript 解决方案是否有更好的方法?
另外一个复杂的问题是,当用户加载其他尚未渲染的组件时,更改仍然有效。
【问题讨论】:
-
用户是在创建任意主题,还是在几个预定义的主题之间进行选择?当前的解决方案似乎假设用户在几个预定义的主题之间进行选择。
-
@speckledcarp 你是对的。所以我开始在 Redux 状态下保存 primaryColor 和 secondaryColor。该解决方案听起来如何?我现在的问题是如何在存储状态后实现它。我一直在每个元素上使用样式标签。似乎重复。
-
@speckledcarp 当然我刚刚遇到了一个问题,即应用样式标签会取消任何 :hover 或 :focus 元素......我可以使用 Radium,但我宁愿不必包括镭在项目中只是为了这个...