0

我运行并积极开发了一个论坛(它本身在经过大量修改的 SMF 1.1.16 上运行) - 我想添加的一个功能是用户能够从角落的小部件中选择自定义颜色(比如 2-4)的页面自定义论坛的颜色。

论坛的 HTML 输出的结构使得可以使用纯 CSS 来修改颜色,我想知道插入这个 CSS 的正确方法是什么。

我的想法是,一旦用户保存了他们的颜色信息,一段 javascript 将生成必要的 CSS 并使用 HTML5 localStorage(可能使用 polyfill 库)保存它。然后,在 $(document).ready() 上,我们检查此 CSS 是否存在,如果存在,我们将其注入页眉。

这种方法明智吗?它很容易开发,但是在应用自定义样式之前,它会导致通常样式的闪烁(鉴于页面相当重量级)吗?

如果是这样,是否有更好的方法可以完全在客户端执行此操作?如果可能的话,我宁愿不涉及服务器,但如果必须,我可以让服务器为每个保存自定义样式的用户生成 CSS 文件。

最好的方法是什么?

4

1 回答 1

1

我建议你先为页面设置一个基本样式,这样就不会有 FOUC。然后,让您的 JS 加载自定义样式,对其进行解析,然后将其应用于页面。您可以进行“淡入更改”(例如背景淡入等),这样样式就不会像快照一样加载。

您也可以先空白页面,例如display:none在加载样式之前将 body 设置为 ,然后在应用样式后,删除display:none

您还必须注意,本地存储有其大小限制。不要加载太多。考虑在 JS 中寻找LZW 压缩。它可能会有所帮助。

于 2012-05-08T10:30:55.963 回答