开发过程中应该遵守哪些编码规范和class命名规范?

开发过程中应该遵守哪些编码规范和class命名规范?

这里是修真院前端小课堂,每篇分享文从【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】八个方面深度解析前端知识/技能。

本篇分享的是:开发过程中应该遵守哪些编码规范和class命名规范?

开场语:

大家好,我是IT修真院广州分院前端王熠华,一枚正直纯洁善良的前端程序员。

今天给大家分享一下,修真院CSS任务12,深度思考中的知识点:

开发过程中应该遵守哪些编码规范和class命名规范?

 

(1)背景介绍:

 

你是否常常碰到以下问题:你总是看不懂他写的代码,或者读起来很吃力;

你需要改他的代码却无从下手,或总是要去问他这里是什么改了会不会影响其他代码;

你和他一起开发一个产品,你总是怕代码和他有冲突或互相影响;

你的代码在多次维护任务之后变得越来越臃肿,越来越难以维护。

解决以上问题只需一种方法——读我们的规范!

 

(2)知识剖析:

 

2.1.HTML规范 - 整体结构

开发过程中应该遵守哪些编码规范和class命名规范? 开发过程中应该遵守哪些编码规范和class命名规范? 开发过程中应该遵守哪些编码规范和class命名规范?

2.2.CSS规范 - 分类方法

开发过程中应该遵守哪些编码规范和class命名规范?

2.3.CSS规范 - 命名规则

开发过程中应该遵守哪些编码规范和class命名规范?

2.4.CSS规范 - 代码格式

开发过程中应该遵守哪些编码规范和class命名规范?

2.5.CSS规范 - 统一语义理解和命名

开发过程中应该遵守哪些编码规范和class命名规范?

 

 

(3)常见问题:

 

    .g-xxx .class{}

不要在页面布局中使用后代选择器,因为这个后代选择器可能会污染里面的元素。

    .m-xxx div{}

 

不要以没有语义的标签作为选择器,这会造成大面积污染,除非你可以断定现在或将来你的这个选择器不会污染其他同类。

 

(4)解决方案:

 

         同上

(5)编码实战:

        详情见视频

 

(6)拓展思考:

 

除了这种规范还有其他规范的吗?

 

(7)参考文献:

 

参考:NEC 更好的CSS方案

 

(8)更多讨论:

Q1:哪种规范更好;
A1:没有统一答案,依据不同公司的要求来书写;


Q2:nec的css顺序是怎么写的;
A2:例:按照以下顺序;

/* 重置 */

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-sd{float:left;width:300px;}

/* 模块 */

.m-logo{width:200px;height:50px;}

/* 元件 */

.u-btn{height:20px;border:1px solid #333;}

/* 功能 */

.f-tac{text-align:center;}

/* 皮肤 */

.s-fc,a.s-fc:hover{color:#fff;}

 

Q3:原子类名命的优劣
A3:缺点:代码冗余;维护困难;控制困难;

       优点

         1,便于抽出复用代码,提高代码复用程度。clearfix 类就是最好的一个例子,将一段用来清除浮动的 CSS 编写成 clearfix 类,在需要清除浮动的 元素 中,增加这个类就可以。类似的还有其他使用场景。

         2,CSS 框架的应用。很多前端框架的 CSS 部分,特别是网格系统,都是原子类的具体应用。

 

(9)鸣谢:

感谢孟晨师兄,此教程是在他之前技术分享的基础上完善而成。

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

--------------------------------------------------------------------------------------------------------------------------------------------------------

“我们相信人人都可以成为一个工程师,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。