web前端开发规范

一、规范概述

  1.1. 目的

      为提高团队协作效率,便于后台人员添加功能及前端后期优化维护,输出高质量的文档,特制订此文档。本规范文档一经确认,前端开发人员必须按本文档规范进行前台页面开发。本文档如有不对或者不合适的地方请及时提出,经讨论决定后方可更改。

  1.2. 准则

     符合web标准,语义化html,结构表现行为分离,兼容性优良。页面性能方面,代码要求简洁明了有序,尽可能的减小服务器负载,保证最快的解析速度。

二、文件规范

  2.1. 基本要求

      1) 对页面中标签属性的值都需要用双引号包括起来

      2) 所有页面编码均采用utf-8

   2.2. 文件存放与命名规范

      1) html,css,js,images文件均归档至《系统开发规范》约定的目录中;

      2) html文件命名:英文命名,后缀.htm,同时将对应界面稿放于同目录中, 并要求与html文件同名,以方便后端添加功能时查找对应页面;

      3) css文件命名:英文命名,后缀.css,共用base.css,首页index.css,其他页面依实际模块需求命名;

      4) js文件命名:英文命名,后缀.js,共用common.js,其他依实际模块需求命名。

   2.3. html书写规范

      1) 文档类型声明及编码:统一为html5声明类型<!DOCTYPE html>;编码统一为<meta charset="utf-8" />,书写时利用IDE实现层次分明的缩进;

      2) 非特殊情况下样式文件必须外链至<head>...</head>之间;非特殊情况下JavaScript文件必须外链至页面底部;

      3) 引入样式文件或JavaScript文件时,须略去默认类型声明,写法如下:

            <link rel="stylesheet" href="..." />

            <style>...</style>

            <script src="..."></script>

      4) 引入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嵌套,如:

            <div class="box">

            <div class="welcome">欢迎访问XXX,您的用户名是

            <div class="name">用户名</div>

            </div>

            </div>

        完全可以用以下代码替代:

            <div class="box">

            <p>欢迎访问XXX, 您的用户名是<span>用户名</span></p>

            </div>

      9) 书写链接地址时,必须避免重定向,例如:href=http://itaolun.com/,即须在URL地址后面加上“/”;

     10) 在页面中尽量避免使用style属性,即style="…";

     11) 必须为含有描述性表单元素(input,textarea)添加label,如:

             <p>姓 名: <input type="text" id="name" name="name" /></p>

          须写成:

             <p>

             <label for="name">姓 名: </label>

             <input type="text" id="name" />

             </p>

     12) 能以背景形式呈现的图片,尽量写入css样式中;

     13) 重要图片必须加上alt属性,重要的元素和截断的元素加上title;

     14) 给区块代码及重要功能(比如循环)加上注释, 方便后台添加功能;

     15) 特殊符号使用:尽可能使用代码替代: 比如 <(<)、>(>)、空格( )等等;

     16) class和id 参见 css书写规范。

   2.4. css书写规范

      1) 编码统一为utf-8;

      2) CSS的命名

       外套:wrap

       主导航:mainNav

       子导航:subnav

       页脚:footer

       整个页面:content

       页眉:header

       页脚:footer

       商标:label

       标题:title

       主导航:mainNav(globalNav)

       顶导航:topnav

       边导航:sidebar

       左导航:leftsideBar

       右导航:rightsideBar

       旗志:logo

       标语:banner

       菜单内容1:menu1Content

       菜单容量:menuContainer

       子菜单:submenu

       边导航图标:sidebarIcon

       注释:note

       面包屑:breadCrumb(即页面所处位置导航提示)

       容器:container

       内容:content

       搜索:search

       登陆:login

       功能区:shop(如购物车,收银台)

       当前的current

     3) 样式文件命名

       主要的:master.css

       布局版面:layout.css

       专栏:columns.css

       文字:font.css

       打印样式:print.css

       主题:themes.css

             页头:header

       登录条:loginBar

       标志:logo

       侧栏:sideBar

       广告:banner

       导航:nav

       子导航:subNav

       菜单:menu

       子菜单:subMenu

       搜索:search

       滚动:scroll

       页面主体:main

       内容:content

       标签页:tab

       文章列表:list

       提示信息:msg

       小技巧:tips

       栏目标题:title

       友情链接:friendLink

       页脚:footer

       加入:joinus

       指南:guild

       服务:service

       热点:hot

       新闻:news

       下载:download

       注册:regsiter

       状态:status

       按钮:btn

       投票:vote

       合作伙伴:partner

         版权:copyRight  

      4) class与id的使用:id是唯一的并是父级的,class是可以重复的并是子级的, 所以id仅使用在大的模块上,class可用在重复使用率高及子级中;

      5) class与id命名:名称由小写英文、数字和下划线来组合命名,如zy_comment,fontred,width200;避免使用中文拼音,尽量使用简易的单词组合;总之,命名要语义化,简明化;

      6) CSS书写范例

           #headed{ }

           .top{}

           .top ul{ }

           .top ul li{ }

           .top ul li span{}

           .top ul li img{ }

           .top ul li a{}

           .top ul li a:hover {}

            ………

     7) css属性书写顺序,建议遵循:布局定位属性 -> 自身属性 -> 文本属性 -> 其他属性。此条可根据自身习惯书写, 但尽量保证同类属性写在一起。属性列举:

         n 布局定位属性主要包括:display、list-style、position(相应 的 top,right,bottom,left)、float、clear、visibility、overflow;

         n 自身属性主要包括:width、height、margin、padding、border、background;

         n 文本属性主要包括:color、font、text-decoration、text-align、vertical-align、white-space;

         n 其他属性:content;

         以上列出的这些属性只是最常用到的,并不代表全部。

      8) 书写代码前,考虑并提高样式重复使用率;

      9) 充分利用html自身属性及样式继承原理减少代码量,比如:

         <ul class="list"><li>这儿是标题列表<span>2010-09-15</span></ul>

         定义

         ul.list li{position:relative}

         ul.list li span{position:absolute; right:0}

         即可实现日期居右显示。

      10) 样式表中中文字体名,请务必转码成unicode码,以避免编码错误时乱码;

      11) 背景图片请尽可能使用sprite技术,减小http请求,考虑到多人协作开发,sprite按模块制作;

      12) 使用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;}

          table th, table td{padding:0;}

      13) 杜绝使用<meta http-equiv="X-UA-Compatible" content="IE=7" /> 兼容 ie8

      14) png图片做图片时,要求图片格式为png-8格式,若png-8实在影响图片质量或其中有半透明效果,请为ie6单独定义背景,代码:

          _background:none;

          _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (sizingMethod=crop, src=’img/bg.png’);

       15) 避免兼容性属性的使用,比如text-shadow、css3的相关属性;

       16) 减少使用影响性能的属性,比如position:absolute、float;

       17) 必须为大区块样式添加注释,小区块适量注释;

       18) css默认设置

           @charset "utf-8";

           *{ margin:0;padding:0;}

           ul,ol,dl { list-style-type:none;}

        19) 前端部分:

         <1> . 页面框架使用 CSS ID 选择器

        例: <div id=”header”></div>

                Css: # header{}

         <2>. ID 选择器内 使用类选择器 CLASS

        例: <div id=”header”>

                <div class=”top”>

                </div>

                </div>

                Css: # header{}

                .top{}

        <3>. CLASS选择器内非特殊样式定义,需使用派生选择器 

        例:<div id=”header”>

              <div class=”top”>

                    <ul>

                       <li></li>

                 </ul>

                 </div>

                 </div>

             Css: # header{}

              .top{}

              .top ul{}

              .top ul li{}

              ……

      <4>.H strong b 标签的使用

      H1标签: 不得超过1次

       strong b标签仅对关键字部分使用

   2.5. JavaScript书写规范

       1) 文件编码统一为utf-8书写过程过,每行代码结束必须有分号,原则上所有功能均根据XXX项目需求原生开发,以避免网上down下来的代码造成的代码污染(沉冗代码、现有代码冲突...);

       2) 变量命名:驼峰式命名。原生JavaScript变量要求是纯英文字母,首字母须小写,如:iTaoLun;另,要求变量集中声明,避免全局变量;

       3) 类命名:首字母大写,驼峰式命名。如:ItaoLun;

       4) 函数命名:首字母小写驼峰式命名。如iTaoLun();

       5) 命名语义化,尽可能利用英文单词或其缩写;

       6) 尽量避免使用存在兼容性及消耗资源的方法或属性,比如eval()、innerText等;

       7) 后期优化中,JavaScript非注释类中文字符须转换成unicode编码使用,以避免编码错误时乱码显示;

       8) 代码结构明了,加适量注释。提高函数重用率;

       9) 注重与html分离,减小reflow,注重性能;

     10) js文件加载 <script src="**.js"></script>;

     11) js变量赋值 <script>var v=”123”;</script>;

     12) js调用函数 <script>getFun();</script>;

     13) 非特殊状态不得页面嵌入 <script>代码</script>;

   2.6. 图片规范

       1) 所有页面元素类图片均放入系统指定的文件夹, 测试用图片放于demoimg文件夹;

       2) 图片格式仅限于gif、png、jpg;

       3) 命名全部用小写英文字母、数字、下划线的组合,其中不得包含汉字、空格、特殊字符;尽量用易懂的词汇,便于团队其他成员理解;另,命名分头尾两部分,用下划线隔开,样例如下表:

图片分类

命名

广告、装饰图案等长方形的图片

ad_

标志性的图片

log_

在页面上位置不固定并且带有链接的小图片(按钮)

btn_

导航图片

nav_

菜单图片

men_

装饰用的照片取名

pic_

不带链接表示标题的图片取名

tit_

小图标

ico_

背景图片

bg_

 

      4) 在保证视觉效果的情况下选择最小的图片格式与图片质量,以减少加载时间;

      5) 尽量避免使用半透明的png图片(若使用,请参考css规范相关说明)

      6) 运用css sprite技术集中小的背景图或图标,减小页面http请求,但注意,请务必在对应的sprite psd源图中划参考线。

三.开发及测试工具约定

      建议使用Aptana、Dw、Vim,亦可根据自己喜好选择,但须遵循如下原则:

      1) 不可利用IDE的视图模式'画'代码;

      2) 不可利用IDE生成相关功能代码,比如Dw内置的一些功能js;

      3) 编码必须格式化,比如缩进。

        测试工具:前期开发仅测试FireFox、IE6、IE7、IE8,后期优化时加入Opera、Chrome、Safari;

        建议测试顺序:FireFox-->IE7-->IE8-->IE6-->Opera-->Chrome-->Safari,建议安装firebug及IE Tab Plus插件。

四.CSS Hack

     即使是完美的CSS也未必能在目前众多的浏览器中呈现一致的效果,所以,CSS Hack在很多情况下都是必要的,建议先以对CSS标准支持得比较好的浏览器(Firefox或者Chrome)为主编辑CSS,最后在处理IE的兼容性——单独为IE建立一个CSS文件(比如:for-ie.css或ie-hack.css等),最后在HTML文件中,通过IE的条件注释按需引入。

转载于:https://www.cnblogs.com/guanghuan521/p/6757123.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值