在w3ctech上闲逛,偶然看到了第一期讨论的话题"网站重构中的文件组织",于是想写篇自己关于css组织的理解和想法,如下:
1.分类1.1网站频道类
|--reset层:包含对样式重置,及一些常用样式名,如fl是float:left,tc是text-align:center;
|--base层:包含header,menu,footer及一些常用组件,如popup,tip,banner等等;
|--channel层:常用频道层,即网站二级栏目,如forum,comic等等
|----page层:如果channel层还有三级频道,则把此channel层再度分离,首先提取此频道的公用部分,做个page-public.css,此频道的主体分为page1-a,css,page1-b,page1-c...
1.2活动,专题类,不同于网站频道类,活动页面主体内容比较固定,上线时间短,故把活动分成模块,按需加载自己需要的模块.如
活动-评论模块 events-comment.css,活动-投票排行 events-vote.css,活动-注册模块 events-registration.css,活动-分页模块 events-page.css.
2.分层举例2.1一般二级频道,如漫客频道,它的css结构为
|--reset.css
|--base.css
|--make.css
2.2大型二级频道,如动漫频道,内含三个子频道,则它的css结构为
|--reset.css
|--base.css
|--comic-public.css
|----comic.css
|----comic-cartoon.css
|----comic-book.css
2.3一般性活动,含有注册,评论,投票模块(注:此处没有引用网站频道类中的base层)
|--reset.css
|--events-registration.css
|--events-comment.css
|--events-vote.css
3.团队合作如A工程师和B工程师同时开发pk(二级频道),开发流程如下:
第一步:A和B讨论研究提取公共模块,如果已在base层里了,则直接从base层里取得,如果是新的公共模块,则添加到base层里.仅pk频道里的公共模块提取之后形成pk-public.css.
第二步:A工程师的css首先写在pk-a.css里,同样B写在pk-b.css,最后项目完成后,把pk-a.css和pk-b.css合并成pk-ab.css,为了减少冲突,A工程师的css以a为前缀,如.pk-a-title,.pk-a-main,.pk-a-a等等.
4.样式合并如上举例中的2至少要引用四个css,如果增加其它应用,那么css文件数量是非常多的,那怎么处理呢?
QA阶段加载正常数量的css文件,上线之前把样式合并,并压缩.
推荐使用工具:"样式文件合并工具 mergeCSS".b