嘿,任何人有任何想法什么是允许用户保存自定义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. 生成自定义viewflipper
- 3. 创建自定义用户的CSS
- 4. 使用pointerEvent自定义生成
- 5. 用HTML格式生成自定义URL
- 6. 使用django生成自定义xml
- 7. 如何为多个用户自定义Mybatis生成器文件?
- 8. C#自动生成SQL“用户定义的表类型”
- 9. 自定义自动生成的ID
- 10. 生成引导程序4自定义css
- 11. 如何自定义ThemeBuilder生成的主题的CSS?
- 12. CSS自定义样式不生效
- 13. Drupal:自定义CSS未集成
- 14. 自动生成的用户
- 15. 用户重写网站的CSS /自定义css
- 16. TFS生成错误当通过TFS调用自定义生成文件的生成定义
- 17. 用CSS自定义sencha
- 18. 用CSS设计自定义
- 19. TeamCity Rest API - 运行自定义生成
- 20. 自定义url生成器类
- 21. Rails3自定义生成器被忽略
- 22. jquery datatable生成上自定义查询
- 23. C++ - 自定义生成事件
- 24. 自定义DataType生成器与Feed4J/benerator
- 25. 自定义属性不生成
- 26. 自定义由JBoss生成的JSessionID
- 27. 在sql中生成自定义序列
- 28. 生成自定义Telerik的RadFilter查询
- 29. 道场1.10自定义生成
- 30. 生成自定义记录器
正如你所提到的那样,将值放在内联javascript中将是最简单和最简单的方法。否则,如果不为每个页面加载创建css文件,则必须管理动态创建css文件并控制浏览器缓存。看到我的回答如下: – 2010-06-30 19:42:38