浙江爱信诺前端规范

CSS规范 - 分类方法

CSS文件的分类和引用顺序

通常,一个项目我们只引用一个CSS,但是对于较大的项目,我们需要把CSS文件进行分类。

我们按照CSS的性质和用途,将CSS文件分成“基层样式”、“公共样式”、“页面样式”,并以此顺序引用(按需求决定是否添加版本号)。

  1. 基层样式:包括了以下几个部分:“样式重置、功能、边距、ui组件”。
  2. 公共样式:包括了以下几个部分:“头部、脚注、页面中重复用到的地方”。
  3. 页面样式:页面独有的样式
							<link href="style/base.css" rel="stylesheet" type="text/css" /> 
							<link href="style/common.css" rel="stylesheet" type="text/css" /> 
							<link href="style/index.css" rel="stylesheet" type="text/css" /> 
							
CSS内部的分类和使用顺序
  1. 统一文档编码:文档顶部以@charset "utf-8";开始
  2. 页面注释:包含了爱信诺版权、文件名、创建人、更新人、版本、详细说明,每次更新完样式表都需要修改更新人、更新时间以及版本号!
  3. 重置(reset)和默认(base)(tags):消除默认样式和浏览器差异,并设置部分标签的初始样式,以减少后面的重复劳动!你可以根据你的网站需求设置!
  4. 统一处理:建议在这个位置统一调用背景图(这里指多个布局或模块或元件共用的图)和清除浮动(这里指通用性较高的布局、模块、元件内的清除)等统一设置处理的样式!
  5. 布局(grid)(.g-):将页面分割为几个大块,通常有头部、主体、主栏、侧栏、尾部等!
  6. 模块(module)(.m-):通常是一个语义化的可以重复使用的较大的整体!比如导航、登录、注册、各种列表、评论、搜索等!
  7. 元件(unit)(.u-):通常是一个不可再分的较为小巧的个体,通常被重复用于各种模块中!比如按钮、输入框、loading、图标等!
  8. 功能(function)(.f-):为方便一些常用样式的使用,我们将这些使用率较高的样式剥离出来,按需使用,通常这些选择器具有固定样式表现,比如清除浮动等!不可滥用!
  9. 边距(edge)(.e-) :定义布局中所使用的内边距以及外边距!
  10. 皮肤(theme)(.t-):如果你需要把皮肤型的样式抽离出来,通常为文字色、背景色(图)、边框色等,非换肤型网站通常只提取文字色!非换肤型网站不可滥用此类!
  11. 状态(status)(.s-):为状态类样式加入前缀,统一标识,方便识别,她只能组合使用或作为后代出现(.u-ipt.s-dis{},.m-list li.s-sel{}),具体详见命名规则的扩展相关项。

功能类和皮肤类样式为表现化的样式,请不要滥用!以上顺序可以按需求适当调整。

以上分类的命名方法详见命名规则

							@charset "utf-8";
							/* 顶部注释 */
                            /**
                             * @filename 文件名.css
                             * @author 创建人姓名[创建日期]
                             * @update 更新人姓名[更新日期]
                             * @version v版本号
                             * @description 文件内容说明
                             */
							/* 重置 */ 
							div, p, ul, ol, li { margin:0; padding:0;} 
							/* 默认 */ 
							strong, em { font-style:normal; font-weight:bold;} 
							/* 统一调用背景图 */ 
							.m-logo a, .m-nav a, .m-nav em { background:url(images/sprite.png) no-repeat 9999px 9999px;} 
							/* 统一清除浮动 */ 
							.g-bdc:after, .m-dimg ul:after, .u-tab:after { display:block; visibility:hidden; clear:both; height:0; overflow:hidden; content:'.';} 
							.g-bdc, .m-dimg ul, .u-tab { zoom:1;} 
							/* 布局 */ 
							.g-sidecol { float:left; width:300px;} 
							/* 模块 */ 
							.m-logo { width:200px; height:50px;} 
							/* 元件 */ 
							.u-btn { height:20px; border:1px solid #333;} 
							/* 功能 */ 
							.f-tac { text-align:center;} 
							/* 边距 */ 
							.e-mr20 { margin-right:20px;} 
							/* 皮肤 */ 
							.t-fc, a.t-fc:hover { color:#fff;} 
							/* 状态 */ 
							.m-nav li.s-crt { background-color:#f60;}