WEB前端開發規范文檔
規范目的
為提高團隊協作效率, 便于后臺人員添加功能及前端后期優化維護, 輸出高質量的程序, 特制訂此文檔. 本文檔如有不對或者不合適的地方請及時提出.
基本準則
符合web標準, 語義化html, 結構表現行為分離, 兼容性優良. 頁面性能方面, 代碼要求簡潔明了有序, 盡可能的減小服務器負載, 保證最快的解析速度.
文件規范
- html, css, js, images文件均歸檔至<系統開發規范>約定的目錄中;
- html文件命名: 英文命名, 后綴.htm. 同時將對應界面稿放于同目錄中, 若界面稿命名為中文, 請重命名與html文件同名, 以方便后端添加功能時查找對應頁面;
- css文件命名: 英文命名, 后綴.css. 共用base.css, 首頁index.css, 其他頁面依實際模塊需求命名.;
- Js文件命名: 英文命名, 后綴.js. 共用common.js, 其他依實際模塊需求命名.
html書寫規范
- 文檔類型聲明及編碼: 統一為html5聲明類型<!DOCTYPE html>; 編碼統一為<meta charset=”utf-8″ />, 書寫時利用IDE實現層次分明的縮進;
- 非特殊情況下樣式文件必須外鏈至<head>…</head>之間;非特殊情況下JavaScript文件必須外鏈至頁面底部;
- 引入JS庫文件, 文件名須包含庫名稱及版本號及是否為壓縮版, 比如jquery-1.4.1.min.js; 引入插件, 文件名格式為庫名稱+插件名稱, 比如jQuery.cookie.js;
- 所有編碼均遵循xhtml標準, 標簽 & 屬性 & 屬性命名 必須由小寫字母及下劃線數字組成, 且所有標簽必須閉合, 包括br (<br />), hr(<hr />)等; 屬性值必須用雙引號包括;
- 充分利用無兼容性問題的html自身標簽, 比如span, em, strong, optgroup, label,等等; 需要為html 元素添加自 定義屬性的時候, 首先要考慮下有沒有默認的已有的合適標簽去設置, 如果沒有, 可以使用須以”data-”為前綴來添加自定義屬性,避免使 用”data:”等其他命名方式;
- 語義化html, 如 標題根據重要性用h*(同一頁面只能有一個h1), 段落標記用p, 列表用ul, 內聯元素中不可嵌套塊級元素;
- 盡可能減少div嵌套
- 書寫鏈接地址時, 必須避免重定向,例如:href=”http://itaolun.com/”, 即須在URL地址后面加上“/”;
- 在頁面中盡量避免使用style屬性,即style=”…”;
- 必須為含有描述性表單元素(input, textarea)添加label, 如<p>姓名: <input type=”text” id=”name” name=”name” /></p>須寫成:<p& gt;<label for=”name”>姓名: </label>< input type=”text” id=”name” /></p>
- 能以背景形式呈現的圖片, 盡量寫入css樣式中;
- 重要圖片必須加上alt屬性; 給重要的元素和截斷的元素加上title;
- 給區塊代碼及重要功能加上注釋, 方便后臺添加功能;
- 書寫頁面過程中, 考慮向后擴展性;
css書寫規范
- 編碼統一為utf-8;
- 先根據各個模塊, 同時根據頁面相似程序, 事先寫好大體框架文件base.css, 每個頁面都要引入, 此文件包含reset及頭部底部樣式, 此文件不可隨意修改;
- class與id的使用: id是唯一的并是父級的, class是可以重復的并是子級的, 所以id僅使用在大的模塊上, class可用在重復使用率高及子級中;
- 為JavaScript預留鉤子的命名, 以 js_ 起始, 比如: js_hide, js_show;
- class與id命名: 大的框架命名比如header/footer/wrapper/left/right之類必須統一命名.其他樣式名稱由 小寫英文,數字,_ 來組合命名, 如i_comment, fontred, width200; 盡量使用簡易的單詞組合; 總之, 命名要語義化, 簡明化.
- 子元素的class與id命名:
如, 要在頁面代碼<div id=”mainnav”></div>中加入新的div元素,
命名方法1: <div id=”mainnav”><div>…</div></div>,
樣式寫法: #mainnav .firstnav{…….}
命名方法:2 <div id=”mainnav”><div>…</div></div>,
樣式寫法: .main_firstnav{…….} - 合作時,對于重復使用率高的命名, 請以自己代號加下劃線起始, 比如i_clear;
- 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等.
- 書寫代碼前, 考慮并提高樣式重復使用率;
- 充分利用html自身屬性及樣式繼承原理減少代碼量, 比如:
<ul><li>這兒是標題列表<span>2010-09-15</span></ul>
定義ul.list li{position:relative} ul.list li span{position:absolute; right:0} - 樣式表中中文字體名, 請務必轉碼成unicode碼, 以避免編碼錯誤時亂碼;
- 背景圖片請盡可能使用sprite技術, 減小http請求, 考慮到多人協作開發, sprite按模塊制作;
- 使用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;} , base.css文件中要初始化表格樣式)
- 杜絕使用<meta http-equiv=”X-UA-Compatible” content=”IE=7″ /> 兼容ie8;
- 用png圖片做圖片時, 要求圖片格式為png-8格式,若png-8實在影響圖片質量或其中有半透明效果, 請為ie6單獨定義背景:
_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=crop, src=’img/bg.png’); - 避免不兼容屬性的使用, 比如text-shadow || css3的相關屬性;
- 為大區塊樣式添加注釋, 小區塊適量注釋;
- 代碼縮進與格式: 單行書寫
JavaScript書寫規范
- 文件編碼統一為utf-8
- 庫引入: 原則上僅引入jQuery庫, 若需引入其它庫, 須與團隊其他人員討論決定;
- 變量命名:原生JavaScript變量要求是純英文字母, 首字母須小寫, 如iTaoLun;
jQuery變量要求首字符為’_’, 其他與原生JavaScript 規則相同, 如: _iTaoLun;
另, 要求變量集中聲明, 避免全局變量. - 類命名: 首字母大寫. 如 ITaoLun;
- 函數命名: 首字母小寫. 如iTaoLun();
- 命名語義化, 盡可能利用英文單詞或其縮寫;
- 盡量避免使用存在兼容性及消耗資源的方法或屬性, 比如eval() & innerText;
- 后期優化中, JavaScript非注釋類中文字符須轉換成unicode編碼使用, 以避免編碼錯誤時亂碼顯示;
- 代碼結構明了, 加適量注釋. 提高函數重用率;
- 注重與html分離, 減小reflow, 注重性能.
圖片規范
- 所有頁面元素類圖片均放入img文件夾, 測試用圖片放于img/demoimg文件夾;
- 圖片格式僅限于gif || png || jpg;
- 命名全部用小寫英文字母 || 數字 || _ 的組合,其中不得包含漢字 || 空格 || 特殊字符;盡量用易懂的詞匯, 便于團隊其他成員理解; 另, 命名分頭尾兩部分, 用下劃線隔開, 比如ad_left01.gif || btn_submit.gif;
- 在保證視覺效果的情況下選擇最小的圖片格式與圖片質量, 以減少加載時間;
- 盡量避免使用半透明的png圖片(若使用, 請參考css規范相關說明);
- 運用css sprite技術集中小的背景圖或圖標, 減小頁面http請求, 但注意, 請務必在對應的sprite psd源圖中劃參考線, 并保存至img目錄下.
注釋規范
- html注釋: 注釋格式 <!–這兒是注釋–>
- css注釋: 注釋格式 /*這兒是注釋*/;
- JavaScript注釋, 單行: //這兒是單行注釋’ 多行: /* 這兒有多行注釋 */
開發及測試工具約定
- 不可利用IDE的視圖模式’畫’代碼;
- 不可利用IDE生成相關功能代碼, 比如Dw內置的一些功能js;
- 編碼必須格式化, 比如縮進;
- 測試工具: 前期開發僅測試FireFox & IE6 & IE7 & IE8 , 后期優化時加入Opera & Chrome;
- 建議測試順序: FireFox–>IE7–>IE8–>IE6–>Opera–>Chrome, 安裝firebug及IE Tab Plus插件.
其他規范
- 提高css復用率, 避免重復開發;
- 減小沉冗代碼, 書寫所有人都可以看的懂的代碼. 簡潔易懂是一種美德. 為用戶著想, 為服務器著想.
原文地址:http://www.csscoo.com/?p=598
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!