您好,欢迎访问三七文档
前端代码编写规范(V1.0)一、规范目的为提高团队协作效率,便于后期优化维护,输出高质量的文档,特制订此文档。本规范文档一经确认,前端开发人员必须按本文档规范进行前台页面开发。本文档如有不对或者不合适的地方请及时提出,经讨论决定后方可更改。二、基本准则符合WEB标准,语义化HTML,结构化表现行为分离,代码兼容性优良。页面性能方面,代码要求简洁明了有序,尽可能的减小服务器负载,保证最优最快的解析速度。三、文件规范1.Html,Css,Js,Images文件均归档至约定的目录中;目录命名尽可能使用英文,语义化,公用部分和各模块分开。比如:公用部分可放在comm目录文件夹下,各功能模块各建一个有意义的文件夹;所有的文件名应该都遵循同一命名约定,确保只能以小写字母开头,不可以数字或符号开头命名文件。除非有特殊含义与用处。Css,Js资源文件名用减号(-)分割,图像资源文件名用下划线(_)分割。如需要对文件增加前后缀或特定的扩展名(如.min.js)则用点号分割。2.Html文件命名:英文命名,整个网站统一后缀为“.html”。3.css文件命名:英文命名,后缀.css。共用common.css,首页index.css,其他页面依实际模块需求命名;四、Js文件命名:英文命名,后缀.js。共用common.js,其他依实际模块需求命名。五、HTML书写规范1.文档类型声明及编码:统一为html5声明类型!DOCTYPEhtml;编码统一为metacharset=”utf-8″/,书写时代码一律缩进2个空格;2.非特殊情况下样式文件外链至head…/head之间;非特殊情况下JavaScript文件外链至页面底部;3.引入样式文件或JavaScript文件时,须略去默认类型声明,写法如下:linkrel=”stylesheet”href=”…”/scriptsrc=”…”/script4.引入JS库文件,文件名须包含库名称及版本号及是否为压缩版,比如jquery-1.4.1.min.js;引入插件,文件名格式为库名称+插件名称,比如jQuery.cookie.js;5.所有编码均遵循xhtml标准,标签&属性&属性命名,必须由小写字母及下划线数字组成,且所有标签必须闭合,包括br(br/),hr(hr/)等;属性值必须用双引号包括;所有标签和属性名称都必须小写;6.充分利用无兼容性问题的html自身标签,比如span,em,strong,optgroup,label等等;需要为html元素添加自定义属性的时候,首先要考虑下有没有默认的已有的合适标签去设置,如果没有,可以使用须以”data-”为前缀来添加自定义属性,避免使用”data:”等其他命名方式;7.语义化html,如:标题根据重要性用h*(同一页面只能有一个h1),段落标记用p,列表用ul,内联元素中不可嵌套块级元素;8.尽可能减少div的过度嵌套。9.书写链接地址时,必须避免重定向,例如:href=,即须在URL地址后面加上“/”;10.在页面中尽量避免使用style属性,即style=”…”;11.为含有描述性表单元素(input,textarea)添加label,如:p姓名:inputtype=”text”id=”name”name=”name”//p写成:plabelfor=”name”姓名:/labelinputtype=”text”id=”name”//p12.能以背景形式呈现的图片,尽量写入css样式中;13.重要图片应加上alt属性;给区块代码及重要功能(比如循环)加上注释,方便后台添加功能特殊符号使用;14.书写页面过程中,考虑向后扩展性;六、CSS书写规范1.编码统一为utf-8;2.协作开发及分工:共用css文件Common.css由前端负责人编写,协作开发过程中,每个页面请务必都要引入,此文件包含【CSSReset(重设)】,如:*{padding:0;margin:0;}及【头部底部样式】,此文件不可随意修改;3.为JavaScript预留接口ID的命名,请以js_起始,比如:js_hide,js_show;4.class与id命名:大的框架命名比如header/footer/wrapper/left/right之类的请参考统一命名。5.其他类名称由小写英文和数字和_来组合命名,如i_comment,fontred,width200;避免使用中文拼音,尽量使用简易的单词组合;总之,命名要语义化,简明化。常用命名规则如:【容器:container/box】【头部:header】【主导航:mainNav】【子导航:subNav】【顶导航:topNav】【网站标志:logo】【大广告:banner】【页面中部:mainBody】【底部:footer】【菜单:menu】【菜单内容:menuContent】【子菜单:subMenu】【子菜单内容:subMenuContent】【搜索:search】【搜索关键字:keyword】【搜索范围:range】【标签文字:tagTitle】【标签内容:tagContent】【当前标签:tagCurrent/currentTag】【标题:title】【内容:content】【列表:list】【当前位置:currentPath】【侧边栏:sidebar】【图标:icon】【注释:note】【登录:login】【注册:register】。详见附图16.规避class与id命名A.通过从属写法规避,示例见D;B.取父级元素id/class命名部分命名,示例见D;C.重复使用率高的命名,请以自己代号加下划线起始,比如z_clear;D.A,B两条,适用于在已建好框架的页面,如:要在已建好框架内添加页面代码divid=”mainnav”/div中加入新的div元素:按a命名法则:divid=”mainnav”divclass=”firstnav”…/div/div,样式写法:#mainnav.firstnav{…….}按b命名法则:divid=”mainnav”divclass=”main_firstnav”…/div/div,样式写法:.main_firstnav{…….}7.属性顺序建议按一下顺序书写:布局属性——自身属性——文本属性——其他属性。A.布局定位属性主要包括:【margin/padding/float/clear/position(相应的top,right,bottom,left)/display/visibility/overflow】等;B.自身属性主要包括:【width/height/margin/padding/background/border】C.文本属性主要包括:【font/color/text-align/text-decoration/text-indent/vertical-align/white-space】等;D.其他属性包括:【list-style(列表样式)/cursor/z-index(层叠顺序)/zoom】等。E.CSS3属性:transform/transition/animation/box-shadow/border-radiusF.如果使用CSS3的属性,如果有必要加入浏览器前缀,则按照-webkit-/-moz-/-ms-/-o-/std的顺序进行添加,标准属性写在最后。G.链接的样式请严格按照如下顺序添加:a:link-a:visited-a:hover-a:activeH.所列出的这些属性只是最常用到的,并不代表全部;8.书写代码前,考虑并提高样式重复使用率;9.慎用!important10.严格区分作为内容的图片和作为背景的图片。作为背景的图片采用Csssprite技术,放在一张大图里。Csssprite技术的优点是减少了http请求数,但使图片面向css的backround-position增加了耦合度,也增加了维护成本。如果图片有修改,不要删除已添加的图片,在空白处新增修图片,减少修改风险。11.使用table标签时(尽量避免使用table标签),请不要用【width,height,cellspacing,cellpadding】等table属性直接定义表现,应尽可能的利用table自身私有属性分离结构与表现,如【thead,tr,th,td,tbody,tfoot,colgroup,scope】cellspaing及cellpadding的css控制方法:table{border:0;margin:0;border-collapse:collapse;}tableth,tabletd{padding:0;}一般在公用的Common.css文件中进行初始化表格样式12.性能优化:A.合并margin、padding、border的-left/-top/-right/-bottom的设置,尽量使用短名称。B.选择器应该在满足功能的基础上尽量简短,减少选择器嵌套,查询消耗。但是一定要避免覆盖全局样式设置。C.注意选择器的性能,不要使用低性能的选择器。D.除非必须,否则,一般有class或id的,不需要再写上元素对应的tag。E.0后面不需要单位,比如0px可以省略成0,0.8px可以省略成.8px。F.如果是16进制表示颜色,则颜色取值应该大写。G.如果可以,颜色尽量用三位字符表示,例如#AABBCC写成#ABC。H.如果没有边框时,不要写成border:0,应该写成border:none。I.在保持代码解耦的前提下,尽量合并重复的样式。J.background、font等可以缩写的属性,尽量使用缩写形式。13.CSS注释;每个CSS文件开头必须注释,如:/**@description:中文说明*@author:name作者*@update:name(2013-04-1318:32)更新*/大区块必须注释,小区块适量注释,如:/*Header*//*Footer*//*Gallery*/14.代码缩进与格式:建议单行书写;七、JavaScript书写规范1.文件编码统一为utf-8,书写过程过,每行代码结束必须有分号;2.原则上所有功能均根据XXX项目需求原生开发,以避免网上down下来的代码造成的代码污染(沉冗代码与现有代码冲突…);(目前视情况而定)3.变量命名:驼峰式命名。变量要求是纯英文字母,首字母须小写;4.类命名:首字母大写,驼峰式命名。5.函数命名:首字母小写驼峰式命名。6.命名语义化,尽可能利用英文单词或其缩写;7.尽量避免使用存在兼容性及消耗资源的方法或属性,比如:eval()&innerText;8.后期优化中,JavaScript非注释类中文字符须转换成unicode编码使用,以避免编码错误时乱码显示;9.代码结构明了,加适量注释。提高函数重用率;八、图片规范1.所有页面元素类图片均放入img文件夹,测试用图片放于img/demoimg文件夹;2.图片格式仅限于gif、png、jpg;3.命名全部用小写【英文字母|数字|下划线】的组合,其中不得包含【汉字|空格|特殊字符】;尽量用易懂的词汇,便于团队其他成员理解;另注:命名分头尾两部分,用下划线隔开,比如:ad_left01.gif|btn_submit.png;4.在保证视觉效果的情况下选择最小的图片格式与图片质量,以减少加载时间;5.尽量避免使用半透明的png图片;6.运用csssprite技术集中小的背景图或图标,减小页面http请求,但注意,请务必在对应的spritepsd源图中划参考线,并保存至img目录下。九、注释规范1.html注释:注释格式!--这儿是注释--,“-”只能在注释的始末位置,不可置入注释文字区域;2.css注释:注释格式/*这儿是注释*/;3.JavaScript注释,单行注释使用’//这儿是单行注
本文标题:前端代码开发规范
链接地址:https://www.777doc.com/doc-5330136 .html