团队开发中的CSS规范建议

一个成熟的网站需要有统一的风格
服务器君一共花费了158.733 ms进行了4次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

互联网上有许多通用的方案,下面总结一下一些方法。

模块化CSS,提高代码重用

我们知道,一个成熟的网站需要有统一的风格,一致的用户体验,比如:网站的配色,字体的大小,交互行为一致等应该在设计之初就得到确定,而不是由个体开发者来自由的定义。网站同时应存在可以提取出来公用的样式部分(如人人网中个人主页右侧的"最近来访","推荐"等处的容器和标题都是相同的展示效果)。那么我们就可以把网站的字体大小,公共控制,共用模块的样式都抽离出来,作为单独的模块来处理。这样,团队中的每个人如果需要这样的样式,都可以用这种公共样式,以此提高代码的重用率。

我认为一个项目的CSS可以拆分成2部分:公共CSS和业务CSS。我们在项目中抽出的这部分可以模块化的CSS就可以归类为公共CSS。这部分的代码命名不应涉及到具体的业务,只应对其在模块中负责的具体逻辑负责。

对于业务CSS,我们需要有统一的命名。如一个网站中有如下几个栏目:文件,社区,社交关系等,在项目规划时,就需要把这块模块的名称定好,比如 文件-files,社区-cmty(community简写),这样开发人员在写样式时,就可以使用公用的前缀,.cmty-cmtydetail,而不会根据各自的想法,写成.community或是.commu,这一点对于统一风格是尽为重要的,也方便备用人员接手工作。

关于这方面,可以看看网上关于 面向对象的CSS / OOCSS。

CSS合并、压缩

顾名思义,在团队开发中,开发者会分别处理各自单元的样式,网站上线了,为了减少http连接数,我们需要把这些CSS合并起来做为一个文件来加载,同时,我们在开发时可能会加入一些注释和行缩进,这些都会浪费我们的带宽,我们需要把合并后的CSS文件再进行压缩,事实上,这样的优化效果也是十分明显的,文件大小会节约至少20%。

目前互联网上对CSS合并的处理有两种:静态合并和动态合并。静态合并是指在网站部署上线前,已经完成了CSS的合并,并生成一个静态文件,动态合并是配合后端文件而实现的合并,既请求CSS时,把需要合并的所有CSS名称做为参数,传给一个后端文件(asp,php,aspx等),由该后端文件动态的生成合并后的样式并输出。两种方案各有利弊。

我在这里想表达的是,我们在项目中应根据项目的类型,应用不同的合并方案,门户型网站对首次加载速度要求较高,我们并不需要合并所有的CSS进来,而社区型的网站,用户需要登录才可以访问,那么就可以利用用户输入的时间加载所有的CSS进来,在以后的访问中都可以省去CSS请求的时间。

统一CSS书写规范

好处是不言而喻的,无论是后台前台,统一的代码规范是必须的。

  1. 一律使用小字字母
  2. 尽量使用ShortHand形式,在font,margin,padding,background中
  3. 处理父子关系的节点时,使用 .parent-child-grandson(大多时候parent名称与具体业务的模块名称相关) 写法 ,而不使用 .parent .child .grandson,事实证明后者在在团队开发中更容易造成模块间的样式覆盖,同时也更不易于阅读。一个简单的例子:在模块一中有一列表,用第二种写法大致如下:
  4. .informationlist{}
    .informationlist .listitem{}
    

而同时,在模块二中也存在一列表,开发者正好也用到了.listitem,而且认为这个命名不常见,前面没有加上限定,直接使用了.listitem ,这样就极容易造成了样式冲突。或许您提出不同意见:我们强制让所有的样式前面都加一个关于其模块名的限定,把模块二中的.listitem改成 .module2 .listitem,不就ok了?但这样并不好,因为在实际应用中,不能要求所有的样式写法一定要加上模块限定,比如在body节点下的某个浮动节点,我们就不能这样处理。

同时,针对第一种写法,我们还可以很轻松开发出一个CSS的检测软件,用来检测语法,判断覆盖。(我们知道判断出.a .b, .a>b,.b的覆盖关系远比.a-b复杂的多)。

本文地址:http://www.nowamagic.net/librarys/veda/detail/1554,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/1554

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

现代魔法研究协会欢迎你

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《编程之美:微软技术面试心得》 《编程之美》小组 (作者)

《编程之美:微软技术面试心得》是一本让人着迷的书!阅读起来。有些题目的内容会引起强烈的共鸣,尤其是那些自己非常熟悉并且又深知解答的题目;也有一些题目让我异常惊诧,原来除了我所知道的解答思路之外,还有更好的解答以及更深层次的原因。还有一些题目是从来没想到过的。阅读过程是一次愉快的享受,也是脑细胞持续活跃的过程。

更多计算机宝库...