嘿,任何人有任何想法什麼是允許用戶保存自定義CSS的最佳方式是什麼?具體來說,我希望允許用戶選擇約4種顏色值,這些顏色將用於爲用戶創建自定義主題。我想保存在數據庫中的值,然後使用DOM:加載原型來設置自定義樣式值,但我想知道如果更快的方式?像動態創建css文件或什麼的?用戶生成自定義css
回答
,然後使用DOM:裝有原型
噢,不這樣做! JavaScript關閉時不起作用。
方法1:靜態樣式表,在文件頭
對於沒有使用動態創建的樣式表工作的緣故動態值,與所有定義一個單獨的,靜態的CSS文件韓元't變化。
<link rel="stylesheet" href="styles/static.css" type="text/css">
<!-- Or whatever you name it -->
所有這一切將變化,你可以放入HTML文檔的head
,從數據庫中獲取用戶可更換值的定義。
<style type="text/css">
.classname { font-size: (fontsize); } <-- Insert dynamic value here
.classname { color: (color); } <-- Insert dynamic value here
....
<style>
這樣,CSS的大部分停留在靜態可緩存文件中,而動態部分不會導致另一個HTTP請求。
方法2:動態樣式表
如果你有大量的動態變化值,把整個樣式表到一個腳本文件並輸出,與數據庫中的值替換佔位符。 這樣做的缺點是,爲了強制瀏覽器重新加載樣式表上的更改,你必須使用stylesheet.css?version=400
版本的方法,這是相當複雜的,但有時可能比亂扔垃圾head
部分CSS 。
您決定哪種方法更適合您的情況。我發現自己最經常選擇第一個。
+1,這次不需要使用JS,甚至不需要額外的文件抓取。 – 2010-07-01 05:47:06
我會將4個值保存在數據庫中,然後從這些值中創建一個css文件。您需要確保並緩存爲每個用戶創建的css文件,這樣您就不必在每個頁面視圖中動態創建它。
創建一個自定義的css文件會增加瀏覽器的另一個請求,因此您需要確保正確設置標題以緩存它。如果用戶做了更改他們的設置您需要做一些事情,以確保瀏覽器立即停止兌現舊的CSS文件並加載新的文件。一種方法是更改css文件的URL。
例子:
/usercustom.css?version=(last saved date hash)
相反我會用你的第一種方法,並創建你注入到頁面中一個JSON數組,然後你用你的JavaScript框架加載和使用數組風格這一頁。
您還可以將顏色值存儲在服務器的Cookie中,並在客戶端上使用和寫入它們。
- 1. 自定義用戶控件中自動生成的代碼
- 2. Grails:生成自定義ID
- 3. 道場自定義生成
- 4. CDT自定義生成
- 5. 自定義etag生成
- 6. 生成自定義viewflipper
- 7. Rails自定義生成器
- 8. 用戶配置文件自定義css
- 9. 創建自定義用戶的CSS
- 10. 使用MySQL生成自定義報告
- 11. 使用pointerEvent自定義生成
- 12. 使用django生成自定義xml
- 13. 用HTML格式生成自定義URL
- 14. C#自動生成SQL「用戶定義的表類型」
- 15. Barclaycard ePDQ - 自定義用戶生成金額
- 16. 如何爲多個用戶自定義Mybatis生成器文件?
- 17. 生成自定義自動編號
- 18. 自定義自動生成的ID
- 19. 有默認的Rails生成調用自定義生成
- 20. 如何自定義由LESS生成的CSS以包含Font Awesome?
- 21. 自定義從wordpress插件生成的CSS
- 22. 如何自定義ThemeBuilder生成的主題的CSS?
- 23. 生成引導程序4自定義css
- 24. CSS自定義樣式不生效
- 25. Simulink:用戶界面,由用戶定義的「系統」數量 - >自動生成
- 26. 自動生成的用戶
- 27. Drupal:自定義CSS未集成
- 28. 自定義數據庫表的自定義實體生成器
- 29. ZK:使用自定義ID生成硒而有我使用的是自定義的ID生成的動態ID
- 30. TFS生成錯誤當通過TFS調用自定義生成文件的生成定義
正如你所提到的那樣,將值放在內聯javascript中將是最簡單和最簡單的方法。否則,如果不爲每個頁面加載創建css文件,則必須管理動態創建css文件並控制瀏覽器緩存。看到我的回答如下: – 2010-06-30 19:42:38