0

私はフォーラムを運営し、積極的に開発しています (それ自体は大幅に変更された SMF 1.1.16 で実行されます) - 追加したい機能の 1 つは、ユーザーがコーナーのウィジェットからカスタム カラー (2 ~ 4 など) を選択できる機能です。フォーラムの色をカスタマイズするページの。

フォーラムの HTML 出力は純粋な CSS で色を変更できるように構成されており、この CSS をどのように挿入するのが正しいのか疑問に思っています。

私が考えていたのは、ユーザーが色情報を保存すると、JavaScript の一部が必要な CSS を生成し、HTML5 localStorage を使用して (おそらくポリフィル ライブラリを使用して) 保存するというものでした。次に、$(document).ready() で、この CSS が存在するかどうかを確認し、存在する場合はページ ヘッドに挿入します。

このアプローチは賢明ですか?開発は簡単ですが、カスタム スタイルを適用する前に、通常のスタイル (ページがかなり重い場合) がちらつきますか?

もしそうなら、これを完全にクライアント側で行うより良い方法はありますか? 可能であればサーバーを関与させたくないのですが、どうしても必要な場合は、カスタム スタイルを保存するすべてのユーザーに対してサーバーに CSS ファイルを生成させることができます。

最善のアプローチは何ですか?

4

1 に答える 1

1

FOUC が発生しないように、最初にページの基本スタイルを用意することをお勧めします。次に、JS にカスタム スタイルをロードして解析させ、後でページに適用します。「フェードイン変更」(背景のフェードインなど) を実行して、スタイルがすぐに読み込まれないようにすることもできます。

スタイルをロードする前にbody を に設定するなど、最初にページを空白にすることもできますdisplay:none。スタイルが適用された後、display:none

また、ローカル ストレージにはサイズ制限があることに注意する必要があります。ロードしすぎないでください。JS で LZW 圧縮を探すことを検討してください。それは役立つかもしれません。

于 2012-05-08T10:30:55.963 に答える