gpt4 book ai didi

javascript - 可定制/主题化的用户界面

转载 作者:太空宇宙 更新时间:2023-11-04 13:08:51 25 4
gpt4 key购买 nike

我想让我的用户能够自定义网站的外观。

我给他们一个颜色选择器来选择配色方案。我想动态生成一些匹配的颜色并应用它们。

我的问题是:

1.) 我如何根据选择的颜色生成配色方案? (背景的一些配色和对比色)

2.) 实现可主题化界面的最佳实践是什么?

我正在用纯 HTML 编写一个 AngularJS SPA 应用程序,以 REST API 作为后端。

现在对于我的第二个问题,我正在检索颜色设置并将它们应用于正文。

<body style="background:color:{{bgcolor}}; color:{{fgcolor}}">

我正在寻找更优雅的东西。

最佳答案

您可以像上面那样使用 ngStyle 执行此操作...但正如您所指出的,它不是很优雅。

一个简单的事实是,除了 ngStyle 指令本身之外,AngularJS 本身并没有真正设计用于解决这个问题。然而,虽然我还没有完全看到这方面的“最佳实践”,但您可以从 Drupal 的“颜色”模块中获取一些想法,这是它的基础/核心模块之一。您可以在 Angular 中非常轻松地做同样的事情。

它所做的是回到样式表,我假设您跳过了样式表,因为它看起来不像是动态事物的明显解决方案。但他们有一个聪明的答案。在一段代码中,用户选择一种颜色后,他们会写出一个样式表,该样式表的文件名具有唯一 ID。他们将这些放在保存其他用户上传 Assets 的目录中,因此它们不会与核心站点代码混合(最大限度地减少潜在的攻击向量)。然后他们只需要在页面中使用一个简单的规则来包含样式表本身。

您可以使用 Angular 轻松模拟所有这些,当然,您需要服务器的帮助。但它的好处是它更容易维护。不必在所有地方“散布”ngStyle 指令(一个在你想要样式化的所有东西上)并且可能与你想在其中一些元素上做的其他事情发生冲突,样式表可以完全按照它应该的方式工作:使用针对特定元素的类。您可以制作一个易于维护的模板样式表,这很自然……最棒的是,它很容易将所有内容连接起来。

关于javascript - 可定制/主题化的用户界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24851433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com