爱思资源网BETWAY登录编码规范 1.0

本规范共分为三部分,BETWAY登录通用编码规范 css编码规范 html编码规范 javascript编码规范

  1. BETWAY登录通用编码规范

    1. 文件编码

      BETWAY登录开发触及的所文件一致运用utf-8编码

    2. id 和 class 命名约好

      1. 议少用id,有必要确保id唯一性
      2. id 和 class 的命名总规矩为: 内容优先,体现为辅. 首要依据内容来命名, 比方 main-nav. 假如依据内容找不到适宜的命名, 能够再结合体现来定, 比方 skin-blue, present-tab, col-main.
      3. id 和 class 称号一概小写, 多个单词用连字符衔接, 比方 recommend-presents.
      4. id 和 class 称号中只能呈现小写的 26 个英文字母、数字和连字符(-), 任何其它字符都制止呈现.
      5. id 和 class 尽量用英文单词命名.
      6. 在不影响语义的情况下, id 和 class 称号中能够恰当选用英文单词缩写, 比方 col, nav, hd, bd, ft 等, 但切忌自造缩写.
      7. id 和 class 称号中的榜首个词有必要是单词全拼或语义十分明晰的单词缩写, 比方 present, col.
  2. css编码规范

    1. 声明及注释

      文件头部有必要加上文件声明信息,有必要包括文件描绘、作者、最终更新(更新人+时刻)

      /*
      
      *@Description: 头部共用款式
      
      *@Author:      Aseoe
      
      *@Update:      Aseoe(2015-03-01 17:22)
      
      */
    2. Hack 规矩

      通用 Hack

      .all-IE{property:value\9;}
      
      :root .IE-9{property:value\0/;}
      
      .gte-IE-8{property:value\0;}
      
      .lte-IE-7{*property:value;}
      
      .IE-7{+property:value;}
      
      .IE-6{_property:value;}
      
      .not-IE{property//:value;}
      
      @-moz-document url-prefix() { .firefox{property:value;} }
      
      @media all and (-webkit-min-device-pixel-ratio:0) { .webkit{property:value;} }
      
      @media all and (-webkit-min-device-pixel-ratio:10000),not all and (-webkit-min-device-pixel-ratio:0) { .opera{property:value;} }
      
      @media screen and (max-device-width: 480px) { .iphone-or-mobile-s-webkit{property:value;} }
    3. CSS文件

      • 文件一概经过 link 链入 (NOT @import)
      • 当仅仅单个页面运用时,才写在 <head> 的 <style> 中
    4. 书写次序

      //显现特点
      
      * display
      
      * list-style
      
      * position
      
      * float
      
      * clear
      
      //自身特点
      
      * width
      
      * height
      
      * margin
      
      * padding
      
      * border
      
      * background
      
      //文本特点
      
      * color
      
      * font
      
      * text-decoration
      
      * text-align
      
      * vertical-align
      
      * white-space
      
      * other text
      
      * content
      
      
      
      
      
      display || visibility
      
      list-style : list-style-type || list-style-position || list-style-image
      
      position
      
      top || right || bottom || left
      
      z-index
      
      float
      
      clear
      
      
      
      width
      
      max-width || min-width
      
      height
      
      max-height || min-height
      
      overflow || clip
      
      margin : margin-top || margin-right || margin-bottom || margin-left
      
      padding : padding-top || padding-right || padding-bottom || padding-left
      
      outline : outline-color || outline-style || outline-width
      
      border
      
      background : background-color || background-image || background-repeat || background-attachment || background-position
      
      
      
      color
      
      font : font-style || font-variant || font-weight || font-size || line-height || font-family
      
      font : caption | icon | menu | message-box | small-caption | status-bar
      
      text-decoration
      
      text-align
      
      vertical-align
      
      white-space
      
      text-indent
      
      text-overflow
      
      line-height
      
      content
      
      cursor
      
      
      
      zoom
      
      
    5. 书写格局

    6. 命名规范

      • 一切g-最初class为大局级款式,悉数放在base-reset.css文件中,其他地方不允许呈现以g-最初的class
      • 一切m-最初class为模块款式,每个模块应树立独自的文件夹和css,并有demo,
        文件夹结构参阅BETWAY登录目录构架,其他地方不允许呈现以g-最初的class
        模块下面再取 xxx-hd(头部),xxx-bd(内容),xxx-ft(尾部)命名
      • on, active, first, last, list, item, col, nav, hd, bd, ft…是公共等级,禁绝独自界说其款式
    7. 层级(z-index)联系

      • 1-99 一般页面内容
      • 100-299 预留
      • 300-399 区块翻开、弹出,像躲藏菜单、二级导航之类
      • 400-599 预留
      • 600-799 页面弹窗、气泡
      • 层级应尽量就低,为10的整数倍,最高层级不逾越799
    8. 其他

      • 不要在CSS中运用 "*" 挑选符
      • 不要直接修正标签的款式
      • 制止运用expression表达式
      • 制止乱用!important
      • 在确保挑选器精确的情况下尽量简化挑选器 (尽量不逾越4级,最多4级),不写剩余的挑选器(如class/id前的标签挑选器、li上一级的的ul/ol、dt/dd上一级的dl等,在确保精确的前提下能去掉的都去掉)
      • 字体粗细选用详细数值,粗体bold写为700,正常normal写为400
      • 色彩用#f60,能简写的色彩简写
      • 能缩写的尽量缩写,如margin、padding、font(font-style font-variant font-weight font-size/line-height font-family)、border(border-width border-style border-color)、background(background-color background-image background-repeat background-attachment background-position)等
      • 去掉0后边的单位
  3. html编码规范

    1. DOCTYPE

      页面文档类型一致运用HTML5 DOCTYPE. 代码如下:

      <!doctype html>
    2. 编码

      声明办法遵从HTML5的规范. 代码如下:

      <meta charset="utf-8" />
    3. 语义化

      运用契合语义的标签书写 HTML 文档, 挑选恰当的元素表达所需的意义

      1. 结构性元素

        • p 表明阶段. 只能包括内联元素, 不能包括块级元素;
        • li 自身无特别意义, 可用于布局. 简直能够包括任何元素;
        • br 表明换行符;
        • hr 表明水平分割线;
        • h1-h6 表明标题. 其间 h1 用于表明当时页面最重要的内容的标题;
        • blockquote 表明引证, 能够包括多个阶段. 请勿朴实为了缩进而运用 blockquote, 大部分浏览器默许将 blockquote 烘托为带有左右缩进;
        • pre 表明一段格局化好的文本;
      2. 头部元素

        • title 每个页面有必要有且仅有一个 title 元素;
        • base 可用场景:主页、频道等大部分链接都为新窗口翻开的页面;
        • link link 用于引进 css 资源时, 可省去 media(默许为all) 和 type(默许为text/css) 特点;
        • style type 默许为 text/css, 能够省去;
        • script type 特点能够省去; 不赞成运用lang特点; 不要运用陈旧的<!– //–>这种hack脚本, 它用于阻挠榜首代浏览器(Netscape 1和Mosaic)将脚本显现成文字;
        • noscript 在用户署理不支撑 JavaScript 的情况下供给阐明;
      3. 文本元素

        • a a 存在 href 特点时表明链接, 无 href 特点但有 name 特点表明锚点;
        • em,strong em 表明句意着重, 加与不加会引起语义改动, 可用于表明不同的心境或语调; strong 表明重要性着重, 可用于部分或大局, strong着重的是重要性, 不会改动句意;
        • abbr 表明缩写;
        • sub,sup 首要用于数学和化学公式, sup还可用于脚注;
        • span 自身无特别意义;
        • ins,del 别离表明从文档中增加(刺进)和删去
      4. 媒体元素

        • img 请勿将img元素作为定位布局的东西, 不要用他显现空白图片; 必要时给img元素增加alt特点;
        • object 能够用来刺进Flash;
      5. 列表元素

        • dl 表明相关列表, dd是对dt的解说; dt和dd的对应联系比较随意:一个dt对应多个dd、多个dt对应一个dd、多个dt对应多个dd, 都合法; 可用于名词/单词解说、日程列表、站点目录;
        • ul 表明无序列表;
        • ol 表明有序列表, 可用于排行榜等;
        • li 表明列表项, 有必要是ul/ol的子元素;
      6. 表单元素

        • 引荐运用 button 替代 input, 但有必要声明 type;
        • 引荐运用 fieldset, legend 安排表单
        • 表单元素的 name 不能设定为 action, enctype, method, novalidate, target, submit 会导致表单提交紊乱
    4. 巨细写,特点值

      元素的标签和特点名有必要小写, 特点值有必要加双引号

    5. html模板

      <!doctype html>
      <html>
      <head>
      <meta charset="utf-8" />
      <title>csc example page</title>
      <link rel="stylesheet" href="css_example_url" />
      <script src="js_example_url"></script>
      </head>
      <body>
      <div class="header">
      页头
      </div>
      <div class="content">
      主体
      </div>
      <div class="footer">
      页尾
      </div>
      <script>
      // 你的代码
      </script>
      </body>
      </html>
  4. javascript编码规范

    JavaScript程序应独立保存在后缀名为.js的文件中。

    js代码不该该被包括在HTML文件中,除非这是段特定只属于此部分的代码。在HTML中的js代码会明显增加文件巨细,并且也不能对其进行缓存和紧缩。

    filename.js应尽量放到body的后边。这样能够削减由于载入script而形成其他页面内容载入也被推迟的问题。也没有必要运用 language或许type特点。MIME类型是由服务器而非scripttag来决议的。

    1. 注释

      • 每个js文件的文件头都有必要包括@author, 主张加上@version

        /**
        
        * jQuery JavaScript version 1.0
        
        * author Aseoe
        
        * Date: 2015.03.01 10:34
        
        */
      • 私有函数,主张增加 @ignore 让文档输出时能够疏忽这段注释

      • 函数内部调用其他的函数,主张加上@see Function 来对上下文做索引

      • 每个带参数的函数有必要包括 @param

        /**
        
        *基类 Shape
        
        * @constructor
        
        * @base Shape
        
        * @param args
        
        * @return  returnValue
        
        */
        
        function Circle(args){
        
        // do some thing 
        
        return  returnValue
        
        }
        
        
      • 结构函数 有必要加上 @constructor(同上)

      • 每个有返回值的函数有必要包括 @return(同上)

    2. 标识符命名

      在js中,标识符的命名规矩是:由包括字母、数字和下划线组成,且榜首个字符有必要是字母最初或下划线或$(一般不要用$)符。不能与 JavaScript 保留字(Key Words,但凡能够用来做 JavaScript 指令的字都是保留字)重复;在js中变量是区别巨细写的;命名规矩参阅下表:

      结构 规矩 样例
      结构函数 驼峰式 ModuleClass()
      公有办法 混合式 getPosition()
      公有变量 混合式 frameStyle
      常量 大写式 DEFAULT_FRAME_LAYOUT
      私有办法 混合 _mixedCase()
      私有变量 混合 _mixedCase
      办法(method)参数 混合 _mixedCase, mixedCase
      本地(local)变量 混合 _mixedCase, mixedCase
    3. 缩进

      爱思资源网发起4 个空格。这是由于直到现在还没有一致的规范来界说 TAB 键所替代的空白巨细,有些编辑器解析为 4 个空格巨细,有些则解析为 8 个。因此用不同的编辑器检查代码,或许形成格局紊乱。当然 TAB 简略易用,为处理这问题,主张在设置开发环境时,将编辑器里的 TAB 快捷键从头设置为 4 个空格。据了解 Eclipse, Vi, Nodepad++,Editplus, UltraEdit 等盛行的编辑器,均供给了此功用。

      • 变量声明:

        多个变量声明时, 恰当换行表明;参照 var 关键字, 缩进一层次
      • 函数参数:

        函数参数写在同一行上;传递匿名函数时, 函数体应从调用该函数的左面开端缩进
      • 数组和目标初始化时:

        假如初始值不是很长, 尽量坚持写在单行上;初始值占用多行时, 缩进一层次;目标中, 比较长的变量/数值, 不要以冒号对齐
      • 二元/三元操作符:

        操作符一直跟从前行;真实需求缩进时, 依照上述缩进风格
    4. 空格

      • 数值操作符(如, +/-/*/% 等)两头留空
      • 赋值操作符/等价判别符两头留一空格
      • for 循环条件中, 分号后留一空格
        for(var i = 0 ; i < 9 ; i++){
        
          statements;
        
        }
        
        
      • 变量声明句子, 数组值, 目标值及函数参数值中的逗号后留一空格
      • 空行不要有空格
      • 行尾不要有空格
      • 逗号和冒号后一定要跟空格
      • 点号前后不要呈现空格
      • 空目标和数组不需求填入空格
      • 函数名结尾和左括号之间不要呈现空格
    5. 换行

      行长逾越右鸿沟,依据以下准则断行:
      • 逗号之后换行
      • 分隔符之前换行
      • 尽或许在高一级断行,不要低一级断行
      • 新行和上一行同一等级的表达式的开端处对齐
      • 假如按上述规矩,导致令人混杂的代码,或新行逾越了右鸿沟,则缩进8个字符即可
    6. 句子

      Javascript程序是由若干句子组成的,句子是编写程序的指令。Javascript供给了完好的根本编程句子
      • 赋值句子
        var str = "value1";  //声明变量并赋值
        
        var obj = new Object();  //创立一个目标的实例
        
        var fn=function fname(){statements;} //命名表达式
        
        var person={name:"admin",age:26}; //字面量声明办法
        
        
      • if, if-else, if else-if else 句子
        if (condition) {
        
            statements;
        
        }
        
        
        
        if (condition) {
        
            statements;
        
        } else {
        
            statements;
        
        }
        
        
        
        if (condition) {
        
            statements;
        
        } else if (condition) {
        
            statements;
        
        } else {
        
            statements;
        
        }
        
        
      • switch挑选句子
        switch (condition) {
        
        case ABC:
        
            statements;
        
            /* falls through */
        
        case DEF:
        
            statements;
        
            break;
        
        case XYZ:
        
            statements;
        
            break;
        
        default:
        
            statements;
        
            break;
        
        }
        
        
        
        
      • while循环句子
        while (condition) {
        
            statements;
        
            update;   // 更新循环变量
        
        }
      • for循环句子
        for(var i = 0 ; i < 9 ; i++){
        
          statements;
        
        }
        
        
      • do while循环句子
        do {
        
            statements;
        
            update;   // 更新循环变量
        
        } while (condition);
        注:只少履行一次循环
      • for-in循环句子
        for(var i in Object){
        
          console.log("i" + " : " + Object[i]); //输出目标的一切特点值
        
        }
        
        
      • break循环停止句子
        while (condition) {
        
            if(condition){
        
            	break; //跳出循环体,程序往下履行
        
            }
        
            statements;
        
            update;   // 更新循环变量
        
        }
      • continue循环中止句子
        while (condition) {
        
            if(condition){
        
            	continue; //停止本次循环,履行下一次循环
        
            }
        
            statements;
        
            update;   // 更新循环变量
        
        }
      • with句子
        with (Math) {
        
           x = cos(3 * PI) + sin(LN10);
        
           y = tan(14 * E);
        
        }
      • try-catch句子
        try {
        
            statements;
        
        } catch (ExceptionClass ec) {
        
            statements;
        
        } finally {
        
            statements;
        
        }
      • 别的,call句子,apply句子,eval等用法,请咱们参阅网上的主张。
    7. 一般主张

      • 写js代码最头痛的是兼容性的问题,而每个浏览器对js的支撑有不同。这就需求咱们自己去兼容他们
        IE:有window.event目标   
        
        FF:没有window.event目标。能够经过给函数的参数传递event目标。如onmousemove=doMouseMove(event)
        
        处理办法:var event = event || window.event; 
        
        
        
        example:
        
        function test(event) {
        
        var event = event || window.event;
        
        //do Something
        
        }
      • 不要运用parentElement,一致选用parentNode,确保兼容性。
      • 不要运用document.getElementById('xx').value 这样的办法来拜访Dom元素目标的特点或值,先将元素目标获取到变量中,例如:var txtName=document.getElementById('textName')判别Dom目标是否存在再取它的特点或值,以进步程序的健壮性。
      • 类型编写有必要运用prototype形式,防止在内存中创立相同办法的多个实例。
      • 运用大括弧来界说静态目标,而不是运用new Object()的办法。
      • 尽量不要运用大局变量,假如需求运用多个办法拜访的变量,请将变量和办法放在一个静态Object目标中。
  5. WebBETWAY登录资源>>> 【爱思资源网