前端开发规范
1 概述
为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进行前台页面开发. 本文档如有不对或者不合适的地方请及时提出, 经讨论决定后可以更改此文档。
2 基本准则
符合web标准, 语义化html, 结构表现行为分离, 兼容性优良. 页面性能方面, 代码要求简洁明了有序, 尽可能的减小服务器负载, 保证最快的解析速度。
3 文件规范
3.1文件命名规则
- 页面命名规则
页面级文件命名遵照fao门户开发文档要求及项目框架约束。
- 图片的命名原则
图片的名称分为头尾两部分,用下划线隔开,头部分表示此图片的大类性质。例如:广告、标志、菜单、按钮等等。
放置在页面顶部的广告、装饰图案等长方形的图片取名: banner
标志性的图片取名为: logo
在页面上位置不固定并且带有链接的小图片我们取名为 btn
在页面上某一个位置连续出现,性质相同的链接栏目的图片我们取名: menu
装饰用的照片我们取名: pic
图标取名icon
不带链接表示标题的图片我们取名: title
范例:banner_sohu.gif banner_sina.gif menu_aboutus.gif menu_job.gif title_news.gif logo_police.gif logo_national.gif icon_people.jpg
- css文件命名:
英文命名,后缀.css。
对于公用样式写在base.css中。
页面单用样式 命名:页面名称.css 如:index.css。
单独某个局部或功能样色,依实际需求命名。
- Js文件命名:
英文命名, 后缀.js。
对于框架或模板通用js 放在 common.js中,
页面单独引用的js 命名:页面名称.js
其他依实际模块需求命名。
3.2文件存放规范
文件存放受制于开发框架。Asp.net mvc 开发框架中页面视图遵照约束自动存放到相应目录。图片、样式、脚本文件存放规则如下:
_Root |
|
|-- Content | 存放图片样式等文件 |
|-- images | 存放图片文件 |
|-- css | 存放样式文件 |
|-- Script | 存放JavaScript脚本 |
3.3文件书写规范
- Css样式书写规范
CSS样式可细分为3类:自定义样式、重新定义HTML样式、链接状态样式。
- 影响网站整体布局样式的样式定义到base.css中。由前端工程师负责。
如:*(全局) body h1—h6 hr a a:伪类 布局和浮动样式等。
其他样式名称由 小写英文 & 数字 & _ 来组合命名, 如i_comment, fontred, width200; 避免使用中文拼音, 尽量使用简易的单词组合; 总之, 命名要语义化, 简明化
- css属性书写顺序, 建议遵循 布局定位属性-->自身属性-->文本属性-->其他属性. 此条可根据自身习惯书写, 但尽量保证同类属性写在一起. 属性列举:
布局定位属性主要包括: margin、padding、float(包括clear)、position(相应的 top,right,bottom,left)、display、visibility、overflow等;
自身属性主要包括: width & height & background & border;
文本属性主要包括:font、color、text-align、text-decoration、text-indent等;
其他属性包括: list-style(列表样式)、vertical-vlign、cursor、z-index(层叠顺序) 、zoom等。所列出的这些属性只是最常用到的, 并不代表全部。
- 书写代码前, 考虑并提高样式重复使用率;
- class与id的使用. 开发工程中css文件中尽量避免出现id样式。一来页面与样式耦合度更小,二来id可供给js使用。
- 尽量减少在前端页面直接书写样式。前端页面尽可能使用base.css中统一样式。
- 避免兼容性属性的使用, 比如text-shadow || css3的相关属性;
- 必须为大区块样式添加注释, 小区块适量注释;
- 代码缩进与格式: 建议单行书写, 可根据自身习惯, 后期优化会统一处理;
- 禁止在页面中使用 来处理行内元素间距或位置,应使用text-indent, padding, margin,等样式。
- JavaScript书写规范
- 书写过程中, 每行代码结束必须有分号; 原则上所有功能均根据XXX项目需求原生开发, 以避免网上down下来的代码造成的代码污染(沉冗代码 || 与现有代码冲突 || ...);
- 库引入: 原则上仅引入jQuery库和框架开发必须js库。若需引入第三方库, 须与团队其他人员讨论决定;
- 变量命名: 驼峰式命名.首字母小写 如:userName。 要求变量集中声明, 避免全局变量。
- 函数命名: 首字母小写驼峰式命名. 如getMsg() openDialog() 等;
- 命名语义化, 尽可能利用英文单词或其缩写;
- 尽量避免使用存在兼容性及消耗资源的方法或属性, 比如eval() & innerText;
- 后期优化中, JavaScript非注释类中文字符须转换成unicode编码使用, 以避免编码错误时乱码显示;
- 代码结构明了, 加适量注释. 提高函数重用率;
- 注重与html分离, 减小reflow, 注重性能。
3.4引用规范
- 文件引用方式
样式文件:<link rel="stylesheet" type="text/css" href="style/style.css">
Js脚本文件:<script type="text/javascript" src="script/xxxxx.js"></ script >
- 将样式表放在顶部,将脚本放在底部
浏览器的加载顺序基本是按源码从上到下加载的,把样式表放在顶部,可以加快页面样式的显示,给客户更好的体验。同理,把脚本放在底部,会避免因脚本阻塞页面内容的呈现。
- 减少HTTP请求
把多个JS请求合并为一个JS请求,把多个CSS请求合并为一个CSS请求。从而减少从客户端向服务器端的请求数。运用css sprite技术集中小的背景图或图标, 减小页面http请求。 - html注释:
3.5注释规范
注释格式 <!--这儿是注释-->, '--'只能在注释的始末位置,不可置入注释文字区域;
- css注释:
注释格式 /*这儿是注释*/;
- JavaScript注释,
单行注释使用 //这儿是单行注释
多行注释使用 /* 这儿有多行注释 */;