CSS编码规范

说明

依据BEM的思想,参照各大厂的相关规范以及根据自身团队的特色进行构建。

命名

原则

  1. 简单、适用、易懂
  2. 复用性高,可读性强
  3. 根据BEM思想,类名统一采用Block-Element-Module的顺序
  4. 命名尽量语义化

注意事项

  1. 涉及大框架尽量采用比如header/footer/wrapper/left/right之类的词
  2. 如需命名CSS文件尽量采用指示性强的词,如globe、layout、style等等
  3. 尽量少用或不用id选择器,尽量用clss类,也少写内联样式
  4. 所有的命名一律采用小写,尽量用英文,减少汉语拼音命名思想

独立页面CSS命名

根据其用途和性质,外接的CSS一般要具有指示性:

  1. 全局(global.css):全局样式为全项目公用
  2. 结构(layout.css):页面结构的公用CSS,适用于固定的产品类或首页级别的页面中
  3. 私有(style.css):页面私有的css当有需要为一个页面单独定制CSS的时候使用
  4. 模块(module.css): 一些可复用的类,出现程度较频繁的属性可提取出来,用作模块
  5. 主题(theme.css): 当网站需要修改皮肤的时候的使用
  6. 补丁(mend.css): 基于以上样式进行的私有化修补

页面框架结构命名

页面结构这块主要是配合HTML进行布局的时候使用,应该配合HTML的标签框架使用,便于标识和寻找。下面是一些常见框架的命名规则:

语义说明(简写)
文档doc (doc)
头部head (hd)
主体body(bd)
尾部foot(ft)
主栏main(mn)
主栏子容器mainc(mnc)
侧栏side(sd)
侧栏子容器sidec(sdc)
盒容器wrap/box(wrap/box)

模块、元件(元素)命名

根据BEM思想,可采用嵌套block的方式,结合模块、元件语义化的思想进行命名,常用的模块元件命令规则如下:

语义命名(简写)
导航nav(nav)
子导航subnav(snav)
面包屑crumb(crm)
菜单menu(menu)
选项卡tab(tab)
标题区head/title(hd/tt)
内容区body/content(bd/ct)
列表list(lst)
表格table(tb)
表单form(fm)
热点hot(hot)
排行top(top)
登录login(log)
标志logo(logo)
广告advertise(ad)
搜索search(sch)
幻灯slide(sld)
提示tips(tips)
帮助help(help)
新闻news(news)
下载download(dld)
注册regist(reg)
投票vote(vote)
版权copyright(cprt)
结果result(rst)
标题title(tt)
按钮button(btn)
输入input(ipt)

状态命名

状态是指元件的状态,常见的状态命名规则如下:

语义命名(简写)
选中selected(sel)
当前current(crt)
显示show(show)
隐藏hide(hide)
打开open(open)
关闭close(close)
出错error(err)
不可用disabled(dis)

命名实践

页面框架命名

.doc {
	.head {}
	.body {
		.main {
			.mainc {}
		}
		.side {
			.sidec {}
		}
		.wrap {}
	}
	.foot {}
}

模块、元件(元素命名)

.doc {
	.head {
		.head-nav {}
		.head-crumb {}
	}
	.body {
		.body-list {}
		.body-form {}	
	}
	.foot {
		.foot-copyright {}
	}
}

状态命名

.doc {
	.head {
		.head-nav {}
		.head-crumb {}
	}
	.body {
		.body-button-selected {}
		.body-button-hide {}	
	}
	.foot {
		.foot-copyright {}
	}
}

书写规则

原则

  1. 能使用简写的时候尽量使用简写
{
	margin : 0 1rem 3rem
}
  1. 去掉小数点后面的0
{
   margin : . 9rem
}
  1. 当度量为0时不要带单位
{
   margin : 0
}

4.颜色用小写

{
 color : #fff
}

5.所有声明语句都应当以分号结尾。最后一条声明语句后面的分号是可选的,但建议还是加上,方便维护

书写顺序

遵循定位属性-》自身属性(尺寸)-》文本属性-》其他属性

{
  display: flex;
  width: 100px;
  font-size: 14px;
  color: #fff
}

注释

行间注释

对于需要特别注明的属性,注释应紧跟在属性后面

{
 width: 100px  /*目标宽度*/
}

块注释

对于功能说明,需要在块开始时注释在上方,并用简洁的语言说明功能的作用

/*
 * Component section heading
 */
.element{...}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值