CSS Framework?
建议先对 Taobao.com UED Team 的 这一篇文章 进行阅读。当然,我的看法已经在后面的留言中说出,基本上我是赞成 Realazy 的观点,不赞成搞 CSS Framework,原留言是:
CSS Framework 的适用性太低,一般都是仅适用于编写者自己和所在的团队。一般通用性较强的只有 reset.css,可能甚至也不会是这般——例如,不同的人对字体的选择有不同的偏好(当然在中文字体世界中没有这么多的选择……),或者, reset.css 对基本上不会用到的元素进行 reset,或许就是一个浪费。
至于 CSS Pattern,个人感觉是,尽可能地使用叠加 class 来定义效果——不知道这算不算是呢?
至于 CSS 文件的请求数问题,这个倒容易解决,例如使用到 reset.css & layout.css, 读取服务器的 reset-layout.css,然后服务器端使用 rewrite 把这个请求指向一个 php 脚本,该 php 脚本自动把这两个 css 文件合并然后输出。对于淘宝这般的站点,大可在请求这类 reset-layout.css 的文件时缓存甚至生成静态文件。
这里只对我这留言内容进行补充。
- 为快速开发而产生。在好些产品的开发中,或许只有一个后台的开发人员,如果让他继续去调试 CSS 代码,如果没有足够的耐心,很大可能只是得到一个不好的结果,这倒不如使用简单成熟的 Framework 来得实际。就我经验看来,界面的调试比后台程序的编写,需要更大的耐性解决颜色配对、不同浏览器之间的一致性这些小问题。
- 适用性低。虽然相似的界面有助于用户减低学习成本,但界面上创新,那一个不同于其他站点的颜色,小图案,适合站点需要的小布局,还有好些个性而体贴的设计——这说明,CSS Framework 适用性不高,很多时候只适合用于单个项目之中。若要说哪个文件最能被频繁使用,我会说是 reset.css,但可能很多时候,这个文件也会有所更改,甚至不需要,因为仅是一个简单的 * { margin:0;padding:0;border:none; } 就能满足 reset 的需要了。
- 个人偏好。设计不同于代码的编写,一个好的站点设计肯定会注入作者的个性要素。曾提及过字体的问题;而不同开发者可能自身所使用的 framework 也是仅适合自身,对于其他开发者来说——或许不适合他们,因为他们有另外的偏好。我较偏向设计师能编写属于他的代码,这一点比熟练使用 Framework 更重要。
- 我赞成 Realazy 的想法,对于一个团队来说,有一个共同的 Design Pattern 是必须的,至于 framework —— 这个词太庞大了,同一个项目中肯定有重复使用的样式,可以单独出来为同一个文件,以供同一个团队进行重复使用,但是这没有 framework 的适用性。
至于 css 的 http 连接数问题——或者说,从来就不是问题,例如留言中我提及的,利用 Apache Rewrite + PHP 的解决办法,作为延展阅读,可以参考下面的文章:
