</li>
,</body>
;所有文件统一采用UTF-8无BOM编码。换行格式为 unix 格式。
<div class="mod recommend-mod"> <div class="hd recommend-title">Tilte </div> <div class="bd recommend-body">contents</div> <div class="ft recommend-footer">footer </div></div>
没有内容的部分可以省略,其中用来表示结构的 mod hd bd ft 不允许直接定义样式(避免嵌套带来样式问题),需要定义样式的时候需要另外增加class以控制样式如:
<div class="mod recommend-mod"> <div class="hd recommend-title">Tilte </div> <div class="bd recommend-body">contents</div> <div class="ft recommend-footer">footer </div></div>
当2个以上的结构不存在的时候可以不是采用此结构,如,没有hd和ft,bd也可以省略
当样式针对多个选择器时每个选择器占一行
/ 推荐的写法 /
a.btn,
input.btn,
input[type="button"] {
......
}
现在通用z-index记录,使用时请避开和灵活使用
z-index | 使用者 | 类型 |
---|---|---|
<10 | page-content | 页面级别 |
>10, <99 | page-popup | 页面级别 |
20 | usercard用户名片 | common通用 |
MSG气泡消息 | common通用 | |
Dialog-Cover | common通用 | |
Dialog | common通用 |
css书写顺序:
例子:.header { /* 显示属性 */ display || visibility list-style position top || right || bottom || left z-index clear float /* 自身属性 */ width max-width || min-width height max-height || min-height overflow || clip margin padding outline border background /* 文本属性 */ color font text-overflow text-align text-indent line-height white-space vertical-align cursor content}
禁止将样式写为单行
如
.hotel-content {margin: 10px; background-color: #efefef;}
单行显示不好注释,不好备注,这应该是压缩工具的活儿~
禁止使用行内(inline)样式
禁止使用"*"来选择元素
/*别这样写*/
* {
margin: 0;
padding: 0;
}
这样写是没有必要的,一些元素在浏览器中默认有margin或padding值,但是只是部分元素,没有必要将所有元素的margin、padding值都置为0。
文件命名可读性强
文件夹、文件的命名与命名空间应能代表代码功能,可读性强。
命名空间建议以“产品线缩写+子项目+功能接口”的方式命名
:::javascriptik.item.detailAPI // 命名空间 =》 知道+物品+详细功能接口
函数命名
驼峰命名方式
:::javascriptfunction funName() {}
常量
大写
:::javascriptvar VARIABLENAME
变量
驼峰命名
:::javascriptvar variableName
排版缩进
采用统一的缩进方式排版代码。缩进为4个ASCII空格
:::javascriptIf(condition1 || condition2) { action1;} else if (condition3 && condition4) { action2;} else if (condition5 && condition6 && condition7 && condition8) { action2;} else { default action;}
关键词、条件括弧后面使用空格;运算操作符号两侧使用空格;语句分割符‘,’后面使用空格
:::javascriptvar name[空格]=[空格]value;if[空格](a,[空格]b) {}
左大括号"{"可以居行尾,也可写在下行首(独自一行);右大括号"}"单独占一行,居行首
:::javascriptif (a && b) { }------------------------if (a && b) {}
句末必须用分号结尾
:::javascriptvar fn = function () {};//这里没有分号的话,脚本解析器会报错!!!(function () { alert(1);})();
单行过长应在适当位置予以换行,增强可读性
if 语句括号中的条件若过多过长,应予以折行;折行后,||、&& 等符号应与 “(” 后的第一个字母纵向对齐
:::javascriptif (condition1 && condition2 || condition3) {}
if、while、for、do语句的执行体总是用"{"和"}"括起来,即使在其结构体内只有一条语句
:::javascriptif (s==100) { alert('shit!');}
语法意义相互独立的代码将用空行分隔
:::javascripta++; b++; //!!!避免同一行书写两个表达式if (a > b) { value = a; //行间不用空行间隔}var variableName = value; //与上一代码行使用空行间隔
文件注释
文件注释要标明作者、文件版本、创建/修改时间、重大版本修改记录
函数描述
文件版本、创建或者修改时间、功能、作者
:::javascript/*** @file Image.js* @description 功能详细描述*/
函数或者类等都要添加头描述
:::javascript/*** 简述** 功能详细描述** @param <String> arg1 参数1* @param <Number> arg2 参数2,默认为0* @return <Boolean> 看xxx是否成功*/function fooFunction (arg1, arg2) {}
操作注释
单行注释,写在代码上面
多行注释
:::javascript/** 注释操作说明*/for( var i = 0; i < obj.lenght; i++) {}
注释标签参考
标签 | 描述 |
---|---|
@addon | 把一个函数标记为另一个函数的扩张,另一个函数的定义不在源文件中。 |
@argument | 用大括号中的自变量类型描述一个自变量。 |
@author | 函数/类作者的姓名。 |
@base | 如果类是继承得来,定义提供的类名称。 |
@class | 用来给一个类提供描述,不能用于构造器的文档中。 |
@constructor | 描述一个类的构造器。 |
@deprecated | 表示函数/类已被忽略。 |
@exception | 描述函数/类产生的一个错误。 |
@exec | |
@extends | 表示派生出当前类的另一个类。 |
@fileoverview | 表示文档块将用于描述当前文件。这个标签应该放在其它任何标签之前。 |
@final | 指出函数/类。 |
@ignore | 让jsdoc忽视随后的代码。 |
@link | 类似于@link标签,用于连接许多其它页面。 |
@member | 定义随后的函数为提供的类名称的一个成员。 |
@param | 用大括号中的参数类型描述一个参数。 |
@private | 表示函数/类为私有,不应包含在生成的文档中。 |
@requires | 表示需要另一个函数/类。 |
@return | 描述一个函数的返回值。 |
@returns | 描述一个函数的返回值。 |
@see | 连接到另一个函数/类。 |
@throws | 描述函数/类可能产生的错误。 |
@type | 指定函数/成员的返回类型。 |
@version | 函数/类的版本号。 |
联系客服