Web前端開發規範文檔你需要知道的事 規範目的 為提高團隊協作效率, 便於後臺人員添加功能及前端後期優化維護, 輸出高質量的文檔, 特製訂此文檔. 本規範文檔一經確認, 前端開發人員必須按本文檔規範進行前臺頁面開發. 本文檔如有不對或者不合適的地方請及時提出, 經討論決定後方可更改. 基本準則 符合 ...
Web前端開發規範文檔你需要知道的事
規範目的
為提高團隊協作效率, 便於後臺人員添加功能及前端後期優化維護, 輸出高質量的文檔, 特製訂此文檔. 本規範文檔一經確認, 前端開發人員必須按本文檔規範進行前臺頁面開發. 本文檔如有不對或者不合適的地方請及時提出, 經討論決定後方可更改.
基本準則
符合web標準, 語義化html, 結構表現行為分離, 相容性優良. 頁面性能方面, 代碼要求簡潔明瞭有序, 儘可能的減小伺服器負載, 保證最快的解析速度.
文件規範
1. html, css, js, images文件均歸檔至<系統開發規範>約定的目錄中;
2. html文件命名: 英文命名, 尾碼.htm. 同時將對應界面稿放於同目錄中, 若界面稿命名為中文, 請重命名與html文件同名, 以方便後端添加功能時查找對應頁面;
3. css文件命名: 英文命名, 尾碼.css. 共用base.css, 首頁index.css, 其他頁面依實際模塊需求命名.;
4. Js文件命名: 英文命名, 尾碼.js. 共用common.js, 其他依實際模塊需求命名.
html書寫規範
1. 文檔類型聲明及編碼: 統一為html5聲明類型; 編碼統一為UTF-8, 書寫時利用IDE實現層次分明的縮進;
2. 非特殊情況下樣式文件必須外鏈至…之間;非特殊情況下JavaScript文件必須外鏈至頁面底部;
3. 引入樣式文件或JavaScript文件時, 須略去預設類型聲明.
4. 引入JS庫文件, 文件名須包含庫名稱及版本號及是否為壓縮版, 比如jquery-1.7.1.min.js; 引入插件, 文件名格式為庫名稱+插件名稱, 比如jQuery.cookie.js;
5. 所有編碼均遵循xhtml標準, 標簽 & 屬性 & 屬性命名 必須由小寫字母及下劃線數字組成, 且所有標簽必須閉合; 屬性值必須用雙引號包括;
6. 充分利用無相容性問題的html自身標簽, 比如span, em, strong, optgroup, label,等等; 需要為html元素添加自定義屬性的時候, 首先要考慮下有沒有預設的已有的合適標簽去設置, 如果沒有, 可以使用須以”data-”為首碼來添加自定義屬性,避免使用”data:”等其他命名方式;
7. 語義化html, 如標題根據重要性用h(同一頁面只能有一個h1), 段落標記用p, 列表用ul, 內聯元素中不可嵌套塊級元素;
8. 儘可能減少div嵌套
9. 書寫鏈接地址時, 必須避免重定向,例如:href=”http://www.example.com/”, 即須在URL地址後面加上“/”;
10. 在頁面中儘量避免使用style屬性,即style=”…”;
11. 必須為含有描述性表單元素(input, textarea)添加label
12. 能以背景形式呈現的圖片, 儘量寫入css樣式中;
13. 重要圖片必須加上alt屬性; 給重要的元素和截斷的元素加上title;
14. 給區塊代碼及重要功能(比如迴圈)加上註釋, 方便後臺添加功能;
15. 特殊符號使用: 儘可能使用代碼替代: 比如 <(<) & >(>) & 空格( ) & »(») 等等;
16. 書寫頁面過程中, 請考慮向後擴展性;
17. class & id 參見 css書寫規範.
css書寫規範
1. 編碼統一為utf-8;
2. 協作開發及分工: 根據各個模塊, 同時根據頁面相似程式, 事先寫好大體框架文件, 分配給前端人員實現內部結構&表現&行為; 共用css文件由base.css書寫, 協作開發過程中, 每個頁面請務必都要引入, 此文件包含reset及頭部底部樣式, 此文件不可隨意修改;
3. class與id的使用: id是唯一的並是父級的, class是可以重覆的並是子級的, 所以id僅使用在大的模塊上, class可用在重覆使用率高及子級中; id原則上都是由我分發框架文件時命名的, 為JavaScript預留鉤子的除外;
4. 為JavaScript預留鉤子的命名, 請以 js_ 起始, 比如: js_hide, js_show;
5. class與id命名: 避免使用中文拼音, 儘量使用簡易的單片語合; 總之, 命名要語義化, 簡明化.
7. css屬性書寫順序, 建議遵循: 佈局定位屬性–>自身屬性–>文本屬性–>其他屬性. 此條可根據自身習慣書寫, 但儘量保證同類屬性寫在一起. 屬性列舉: 佈局定位屬性主要包括: display & list-style & position(相應的 top,right,bottom,left) & float & clear & visibility & overflow; 自身屬性主要包括: width & height & margin & padding & border & background; 文本屬性主要包括:color & font & text-decoration & text-align & vertical-align & white- space & 其他 & content; 我所列出的這些屬性只是最常用到的, 並不代表全部;
8. 書寫代碼前, 考慮並提高樣式重覆使用率;
9. 充分利用html自身屬性及樣式繼承原理減少代碼量, 比如:
定義
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;}, base.css文件中我會初始化表格樣式)
13. 如何可以請少使用相容;
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. 代碼縮進與格式: 建議單行書寫, 可根據自身習慣, 後期優化會統一處理;
JavaScript書寫規範
1. 文件編碼統一為utf-8, 書寫過程過, 每行代碼結束必須有分號; 原則上所有功能均根據XXX項目需求原生開發, 以避免網上down下來的代碼造成的代碼污染(沉冗代碼 || 與現有代碼衝突 || …);
2. 庫引入: 原則上僅引入jQuery庫, 若需引入第三方庫, 須與團隊其他人員討論決定;
3. 變數命名: 駝峰式命名. 原生JavaScript變數要求是純英文字母, 首字母須小寫, 如iTaoLun;
jQuery變數要求首字元為’_’, 其他與原生JavaScript 規則相同, 如: _iTaoLun;
另, 要求變數集中聲明, 避免全局變數.
4. 類命名: 首字母大寫, 駝峰式命名. 如 ITaoLun;
5. 函數命名: 首字母小寫駝峰式命名. 如iTaoLun();
6. 命名語義化, 儘可能利用英文單詞或其縮寫;
7. 儘量避免使用存在相容性及消耗資源的方法或屬性, 比如eval_r() & innerText;
8. 後期優化中, JavaScript非註釋類中文字元須轉換成unicode編碼使用, 以避免編碼錯誤時亂碼顯示;
9. 代碼結構明瞭, 加適量註釋. 提高函數重用率;
10. 註重與html分離, 減小reflow, 註重性能.
圖片規範
1. 所有頁面元素類圖片均放入img文件夾, 測試用圖片放於img/demoimg文件夾;
2. 圖片格式僅限於gif || png || jpg;
3. 命名全部用小寫英文字母、數字、 _ 的組合,其中不得包含漢字、空格、特殊字元;儘量用易懂的辭彙, 便於團隊其他成員理解; 另, 命名分頭尾兩部分, 用下劃線隔開, 比如ad_left01.gif 、btn_submit.gif;
4. 在保證視覺效果的情況下選擇最小的圖片格式與圖片質量, 以減少載入時間;
5. 儘量避免使用半透明的png圖片(若使用, 請參考css規範相關說明);
6. 運用css sprite技術集中小的背景圖或圖標, 減小頁面http請求, 但註意, 請務必在對應的sprite psd源圖中劃參考線, 並保存至img目錄下.
註釋規範
1. html註釋: 註釋格式 , ‘–’只能在註釋的始末位置,不可置入註釋文字區域;
2. css註釋: 註釋格式 ;
3. JavaScript註釋, 單行註釋使用’//這兒是單行註釋’ ,多行註釋使用 ;
開發及測試工具約定
建議使用WebStorm、Aptana、 Dw、 Vim , 亦可根據自己喜好選擇, 但須遵循如下原則:
1. 不可利用IDE的視圖模式“畫”代碼;
2. 不可利用IDE生成相關功能代碼, 比如Dw內置的一些功能js;
3. 編碼必須格式化, 比如縮進;
測試工具: 前期開發僅測試FireFox & IE6 & IE7 & IE8 & IE9 & Opera & Chrome & Safari;
其他規範
1. 開發過程中嚴格按分工完成頁面, 以提高css復用率, 避免重覆開發;
2. 減小沉冗代碼, 書寫所有人都可以看的懂的代碼. 簡潔易懂是一種美德. 為用戶著想, 為伺服器著想.