一、html编码规范
- 所有html代码都采用小写
- 属性的值一定要用双引号("")括起来,且一定要有值,属性与属性之间空格数量不要太多,最好是1个
- 所有的标签都要有一个相应的结束标签,如果是单独不成对的标签,在标签最后加一个“/”来关闭它,例如<br />。
- 表现和结构分离,代码中尽量不涉及任何表现元素,如style,font,border,bgcolor等属性,只写入文档的结构,将样式写于css文件中或页面的head区。
- 不要使用<font>标签,可以用<span>代替;不要用<b>,可以用<strong>代替;不要在<a>内用span改变链接文字颜色
- 用<checkbox>时,必须用<label for="checkbox.id"></label>把说明文字和checkbox组合起来,这时文字的点击效果和checkbox等同
- 在每个内容块的开始和结束处加入注释,例如
<!--登录框 begin-->
......
<!--登录框 end-->
注意,不要再注释内容中加入“-”。
- html标签必须合理嵌套,并要有一定的层次感
二、CSS书写规范
1、尽可能的通过继承和层叠重用已有样式
2、根据新建样式的适应范围分为三级:全站级、频道级、页面级
2-1.全站级:global.css 这个是全局(如果要修改这个css要测试整个网站)
2-2.频道级:文件存在在css/相应目录下 (如:zhekou\fanli等)
2-3.页面级:少量几个页面,写成css文件,并做注释 如果只有仅在一个页面里使用,则可以放在head头部
3、单条CSS规则的书写要求格式要求
3-1.属性需要写在一行,需要在”{””}”前后加空格, 在属性的”;”后也加空格
如:.selector { property:value; property:value; }
3-2.多个 selector每个占一行
如:.selector1,
.selector2,
.awlwxroe3 { property:value; property:value; }
3-3.兼容多个浏览器,将标准属性写在前面,
如:width:100px; *width:100px; _width:100px;
4、将作用于不同模块的css放在一起,一定要加注释
/*nav start*/
/*nav end*/
5、ID和Class命名不要用缩写,单词用“_”分隔, 慎用ID,应该多用class
如:.nav_footer{}
6、推荐使用的class名
表示状态:.on .active .selected
表示位置:.first .last .main .side
表示结构:.hd .bd .ft .col .section
通用元素:.tb .frm .nav .list .item .tag .pic .info
7、推荐使用下面的css方式
区别属性:
IE6 _property:value
IE6/IE7 *property:value
IE6/IE7/IE8 property:value\9
非IE6 property//:value;
区别规则:
IE6 * html .selector{}
IE7 *:first-child+html .selector{}
非IE6 html>body .selector{}
8、清除浮动用global.css里的两种类 clear 和 clear-fix
9、页面引用css的顺序,全站-》频道-》页面-》内联
10、避免使用低效的选择器
如:body>*{}
Ul > li > a{}
#footer > h3{}
Ul#top_blue{}
#search span.submit a{}
11、尽量避免使用 filter
12、不要直接修改标签的样式
如: Div{}
13、不要在标签上直接写样式
如 <div style=”height:100px;”></div>
14、尽量不用 expression
15、不要使用 @import url(1.css);
16、尽量不用 !important
17、绝对不要在css中使用 “*”选择符 *{margin:0,padding:0;}
三、js代码
1、js代码分三级,公共级、频道级、页面级 (js文件名全为小写)
公共级,js/global.js
频道级,js/频道名/频道名.js
页面级,如果少可以用<script>放在页尾 ,如果非常多,也可以放在频道目录
2、变量命名规范
2-1.常量以及全局变量必须全部使用大写字母,单词之间用下划线分隔
如:var MMS_FRAME, LIMITE_TIME
2-2.方法内变量使用多个单词组成复合词,首单词小写,其它字母大写
如:arrSampleList objSubmitBotton
2-3.对于指定Dom对象的变量名,尽量使用elm、obj或elm、obj开头命名
var objSubmitButton = document.getElementById(‘btn_submit’);
function getCheckElement(){
var obj = document.getELementById(name); //如果方法内部只有一个对象
}
2-4.对于指定字符串的变量名,尽量用str,或str开头
var strMaxTips = ‘最大的提示信息’;
2-5.对于指定数字的变量名,尽量使用num或num开头
var numMaxcount = 1000;
2-6.布尔值的变量名的命名前面加is,同理可以加 has,can,should
Var isChecked, hasApple, canDoit;
2-7.循环变量使用 i,j,k
2-8.用于返回结果变量用result 或 ret开头的变量
2-9.临时变量为temp,捕捉变量为e
2-10.数组变量在单词前加arr
var arrCity = [‘北京’,‘上海’];
2-11.避免使用否定的变量名称,例如:
isNotError, isNotFound
3、方法命名规范
3-1.方法命名使用多个单词组成复合词,首单词小写,其它单词首字母大写。
如: function openWin(){}
3-2.方法命名的第一个单词尽量使用动词。例如:get/set add/remove create/destroy start/stop insert/delete begin/end等
4、类或组件的命名规范
4-1.类名称必须为名词并使用骆峰命名法
Account , EventHandler
4-2.类内的常量必须在对象(类)的前部声名,或枚举变量的前部声名,全用大写
var NodeTypes = {
PI:3.1415,
ELEMENT:2
}
4-3.方法的命名为一个动词或动词短语 如:obj.getElement(){}
4-4.类的公有变量 , 类的私有变量 命名规范
var MyClass = function(){
this.myName = “robinName”; //公有变量
};
MyClass.prototype.getName = function(){
Var _thisName = “abc”; //私有变量前面加 ”_”
}
4-5.类的继承的方法
var CatMyClass = function(){ //红色为基类的名称
this.myClass = MyClass;
this.myClass();
……
};
5、变量的定义与使用
5-1.变量必须先定义后使用
5-2.声明变量时要初始化 null
5-3.变量应该放在和他有关系的代码中,不要把变量放在最上面,下面隔很远
5-4.变量具有最小的声明周期 ,执行完方法 内存就释放
5-5.应尽量避免复杂条件表达式
如:不好的方法
If(a == b && b == c && c==d){ //有些复杂了 }
好的方法
var isOk = (a == b && b == c && c==d);
If(isOk){}
6、空白的使用规范
6-1.逗号后面跟一个空格
如:var foo = function(name1, name2, name3){}
6-2.冒号的前后各放一个空格
如:var strPosition = (a>b) ? ‘top’ : ‘botoon’;
6-3.for语句的分号后面跟一个空格
如:for(i = 0; i < 10; i++ ){}
6-4.分号前永远不要有空格
如:var city = “shanghai”;
7、js的一些建议
7-1.使用{}来代替 new object(); 用[] 来代替new Array();
如:var arrCity = new Array(’北京’,’上海’,’深圳’); //不建议
var arrCity = [’北京’,’上海’,’深圳’]; //建议
var objPerson = new object(); //不建议
objPerson.name = ‘robin’; objPerson.sex = ’man’;
var objPerson = {
name:’robin’,
sex:’ man’
}
7-2.恒等运算和相等运算
var a;
alert(a==null) //true
alert(a==null) //false
alert(a===undefined) //true
7-3.Dom缓存已经访问过的元素
7-4.离线更新节点
7-5.如果拼字符串,不要用字符串相加,用数组来处理
如:不要这样做
var str = ‘<div class=”myclass”>’+
‘这些是内容’+
‘</div>’;
var str = new Array();
str.push(‘<div class=”myclass”>’);
8、注释
8-1.全局变量要有注释
8-2.整个方法也要加一下注释
注释
// 单行注释
/* 多行注释 */
四、java编码规范
五、提示文字
提示文字可以分为 鼠标移入提示、输入框备注、操作反馈、功能提醒,系统异常
- 鼠标移入提示实现包含 alt、titile、tips(使用不多)
- alt:图片的提示信息,主要是为了SEO优化;
- title:主要用于文字、操作的解释,在大多数情况下用于段落显示不全的提示信息;
- tips:对信息的对话云式的提示,用作在当前区域的提示;
注: alt和title会在几秒中后消失,对于比较重要的提示建议用tips或者用JS行 为来控制提示信息
- 备注主要是 对表单输入框的输入提醒,显示在输入框右边,可以分为点击显示和默认显示
- 操作反馈提示是在操作表单时产生的提示文字或提示页面
- 表单输入框在输入过程中发生错误,在输入框下面显示提示文字
- 提交表单时,某输入框输入错误,在输入框下面显示提示文字
- 表单提交,操作结果根据成功、失败、系统异常转入对应提示页面
特别情况下,也可以把将提示信息显示在操作按钮右边或上面
注:操作提示不能使用alert 弹框
- 功能提醒是对功能操作的注意点提示,放在操作表单底部
- 系统异常是在功能执行出现异常时提示给用户
六、操作
1、所有操作步骤不能超过3步,并且不能有双向选择
2、操作步骤超过1步的时候需要有流程图提示,让用户知道下一步操作的内容
七、SEO相关
- 需要做SEO的页面网址目录层次不要超过4层,网址需要做静态化,目录命名以小写英文字母、下划线组成
- 网页title,keywords ,description设定(需要确定1个人定义这些内容告知技术)
- 减少css,js文件引用个数,各控制在2-3个
- 图片标签需要加入alt属性,不需要和title同时使用,需要时可以把title加到A标签
注:规范的HTML代码width及height标签也是需要的。title大多数情况下用于段落显 示不全的提示信息
- 页面中的js代码能放到页面末尾的放到页面末尾
- 页面html不能用table,改用div实现,并做到冗余代码的清除,保证hmtl代码简洁,style的代码尽量放入css文件
- 网页关键字需要用strong、h1~h6这样的标签,h1标签一个页面里面最多出现一次 ,每个页面中至少应该出现1次这样的标签
五、其他
- 网站可用色系demo准备
- 按钮样式demo准备
- 表单文本框、数据列表页样式demo准备
- 链接文字样式准备,设定多套链接样式供不同频道,不同内容使用
- 操作提示页面demo准备 ,可以分为操作成功、失败、系统异常3种
- 操作提示文字颜色准备,可以分为功能提醒、输入框备注、警告、错误、系统异常5种
- 准备404,500错误页提示页面
开发过程只能用以上效果布局相关页面