- 作(zuò)者:admin
- 發表時(shí)間(jiān):2013-07-02 14:17:15
- 來(lái)源:未知
為(wèi)提高(gāo)團隊協作(zuò)效率, 便于後台人(rén)員添加功能及前端後期優化維護, 輸出高(gāo)質量的文檔, 特制(zhì)訂此文檔. 本規範文檔一經确認, 前端開(kāi)發人(rén)員必 須按本文檔規範進行(xíng)前台頁面開(kāi)發. 本文檔如有(yǒu)不對或者不合适的地方請(qǐng)及時(shí)提出, 經討(tǎo)論決定後方可(kě)更改.
基本準則
符合web标準, 語義化html, 結構表現行(xíng)為(wèi)分離, 兼容性優良. 頁面性能方面, 代碼要求簡潔明(míng)了有(yǒu)序, 盡可(kě)能的減小(xiǎo)服務器(qì)負載, 保證最快的 解析速度.
文件規範
1. html, css, js, images文件均歸檔至<系统开发规范>約定的目錄中; 系统开发规范>
2. html文件命名: 英文命名, 後綴.htm. 同時(shí)将對應界面稿放于同目錄中, 若界面稿命名為(wèi)中文, 請(qǐng)重命名與html文件同名, 以方便後端添加 功能時(shí)查找對應頁面;
3. css文件命名: 英文命名, 後綴.css. 共用base.css, 首頁index.css, 其他頁面依實際模塊需求命名.;
4. Js文件命名: 英文命名, 後綴.js. 共用common.js, 其他依實際模塊需求命名.
html書(shū)寫規範
1. 文檔類型聲明(míng)及編碼: 統一為(wèi)html5聲明(míng)類型; 編碼統一為(wèi), 書(shū)寫時(shí)利用IDE實現層 次分明(míng)的縮進;
2. 非特殊情況下樣式文件必須外鏈至...之間(jiān);非特殊情況下JavaScript文件必須外鏈至頁面底部;
3. 引入樣式文件或JavaScript文件時(shí), 須略去默認類型聲明(míng), 寫法如下:
4. 引入JS庫文件, 文件名須包含庫名稱及版本号及是否為(wèi)壓縮版, 比如jquery-1.4.1.min.js; 引入插件, 文件名格式為(wèi)庫名稱+插件名稱, 比 如jQuery.cookie.js;
5. 所有(yǒu)編碼均遵循xhtml标準, 标簽 & 屬性 & 屬性命名 必須由小(xiǎo)寫字母及下劃線數(shù)字組成, 且所有(yǒu)标簽必須閉合, 包括 br (
), hr(
)等; 屬性值必須用雙引号包括;
6. 充分利用無兼容性問題的html自身标簽, 比如span, em, strong, optgroup, label,等等; 需要為(wèi)html元素添加自定義屬性的時(shí)候, 首先 要考慮下有(yǒu)沒有(yǒu)默認的已有(yǒu)的合适标簽去設置, 如果沒有(yǒu), 可(kě)以使用須以"data-"為(wèi)前綴來(lái)添加自定義屬性,避免使用"data:"等其他命名方式;
7. 語義化html, 如 标題根據重要性用h*(同一頁面隻能有(yǒu)一個(gè)h1), 段落标記用p, 列表用ul, 內(nèi)聯元素中不可(kě)嵌套塊級元素;
8. 盡可(kě)能減少(shǎo)div嵌套, 如
歡迎 訪問XXX, 您的用戶名是用戶名
9. 書(shū)寫鏈接地址時(shí), 必須避免重定向,例如:href="http://itaolun.com/", 即須在URL地址後面加上(shàng)“/”;
10. 在頁面中盡量避免使用style屬性,即style="…";
11. 必須為(wèi)含有(yǒu)描述性表單元素(input, textarea)添加label, 如
姓 名:
須寫成:姓 名:
12. 能以背景形式呈現的圖片, 盡量寫入css樣式中;
13. 重要圖片必須加上(shàng)alt屬性; 給重要的元素和(hé)截斷的元素加上(shàng)title;
14. 給區(qū)塊代碼及重要功能(比如循環)加上(shàng)注釋, 方便後台添加功能;
15. 特殊符号使用: 盡可(kě)能使用代碼替代: 比如 <(<) & >(>) & 空(kōng)格( ) & ?(?) 等等;
16. 書(shū)寫頁面過程中, 請(qǐng)考慮向後擴展性;
17. class & id 參見 css書(shū)寫規範.
css書(shū)寫規範
1. 編碼統一為(wèi)utf-8;
2. 協作(zuò)開(kāi)發及分工: i會(huì)根據各個(gè)模塊, 同時(shí)根據頁面相似程序, 事先寫好大(dà)體(tǐ)框架文件, 分配給前端人(rén)員實現內(nèi)部結構&表現&行(xíng)為(wèi); 共用css文件base.css由i書(shū)寫, 協作(zuò)開(kāi)發過程中, 每個(gè)頁面請(qǐng)務必都要引入, 此文件包含reset及頭部底部樣式, 此文件不可(kě)随意修改;
3. class與id的使用: id是唯一的并是父級的, class是可(kě)以重複的并是子級的, 所以id僅使用在大(dà)的模塊上(shàng), class可(kě)用在重複使用率高(gāo)及子級 中; id原則上(shàng)都是由我分發框架文件時(shí)命名的, 為(wèi)JavaScript預留鈎子的除外;
4. 為(wèi)JavaScript預留鈎子的命名, 請(qǐng)以 js_ 起始, 比如: js_hide, js_show;
5. class與id命名: 大(dà)的框架命名比如header/footer/wrapper/left/right之類的在2中由i統一命名.其他樣式名稱由 小(xiǎo)寫英文 & 數(shù) 字 & _ 來(lái)組合命名, 如i_comment, fontred, width200; 避免使用中文拼音(yīn), 盡量使用簡易的單詞組合; 總之, 命名要語義化, 簡明(míng) 化.
6. 規避class與id命名(此條重要, 若有(yǒu)不明(míng)白請(qǐng)及時(shí)與i溝通(tōng)):
a, 通(tōng)過從屬寫法規避, 示例見d;
b, 取父級元素id/class命名部分命名, 示例見d;
c, 重複使用率高(gāo)的命名, 請(qǐng)以自己代号加下劃線起始, 比如i_clear;
d, a,b兩條, 适用于在2中已建好框架的頁面, 如,
要在2中已建好框架的頁面代碼中加入新的div元 素, 按a命名法則: , 樣式寫法: #mainnav .firstnav{.......} 按b命名法則: , 樣式寫法: .main_firstnav{.......}
7. css屬性書(shū)寫順序, 建議遵循: 布局定位屬性-->自身屬性-->文本屬性-->其他屬性. 此條可(kě)根據自身習慣書(shū)寫, 但(dàn)盡量保證同類屬 性寫在一起.
屬性列舉: 布局定位屬性主要包括: 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; 我所列出的這些(xiē)屬性隻是最常用到的, 并不代表全部;
8. 書(shū)寫代碼前, 考慮并提高(gāo)樣式重複使用率;
9. 充分利用html自身屬性及樣式繼承原理(lǐ)減少(shǎo)代碼量, 比如:
- 這兒是标題列表2010-09- 15
10. 樣式表中中文字體(tǐ)名, 請(qǐng)務必轉碼成unicode碼, 以避免編碼錯誤時(shí)亂碼;
11. 背景圖片請(qǐng)盡可(kě)能使用sprite技(jì)術(shù), 減小(xiǎo)http請(qǐng)求, 考慮到多(duō)人(rén)協作(zuò)開(kāi)發, sprite按模塊制(zhì)作(zuò);
12. 使用table标簽時(shí)(盡量避免使用table标簽), 請(qǐng)不要用width/ height/cellspacing/cellpadding等table屬性直接定義表現, 應盡可(kě)能的利用table自身私有(yǒu)屬性分離結構與表現 , 如
thead,tr,th,td,tbody,tfoot,colgroup,scope; (cellspaing及cellpadding的css控制(zhì)方法: table{border:0;margin:0;border-collapse:collapse;} table th, table td{padding:0;} , base.css文件中我會(huì)初始化表格樣式)
13. 杜絕使用兼容 ie8;
14. 用png圖片做(zuò)圖片時(shí), 要求圖片格式為(wèi)png-8格式,若png-8實在影(yǐng)響圖片質量或其中有(yǒu)半透明(míng)效果, 請(qǐng)為(wèi)ie6單獨定義背景:
_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (sizingMethod=crop, src=’img/bg.png’);
15. 避免兼容性屬性的使用, 比如text-shadow || css3的相關屬性;
16. 減少(shǎo)使用影(yǐng)響性能的屬性, 比如position:absolute || float ;
17. 必須為(wèi)大(dà)區(qū)塊樣式添加注釋, 小(xiǎo)區(qū)塊适量注釋;
18. 代碼縮進與格式: 建議單行(xíng)書(shū)寫, 可(kě)根據自身習慣, 後期優化i會(huì)統一處理(lǐ);
JavaScript書(shū)寫規範
1. 文件編碼統一為(wèi)utf-8, 書(shū)寫過程過, 每行(xíng)代碼結束必須有(yǒu)分号; 原則上(shàng)所有(yǒu)功能均根據XXX項目需求原生(shēng)開(kāi)發, 以避免網上(shàng)down下來(lái)的代碼造 成的代碼污染(沉冗代碼 || 與現有(yǒu)代碼沖突 || ...);
2. 庫引入: 原則上(shàng)僅引入jQuery庫, 若需引入第三方庫, 須與團隊其他人(rén)員討(tǎo)論決定;
3. 變量命名: 駝峰式命名. 原生(shēng)JavaScript變量要求是純英文字母, 首字母須小(xiǎo)寫, 如iTaoLun;
jQuery變量要求首字符為(wèi)'_', 其他與原生(shēng)JavaScript 規則相同, 如: _iTaoLun; 另, 要求變量集中聲明(míng), 避免全局變量.
4. 類命名: 首字母大(dà)寫, 駝峰式命名. 如 ITaoLun;
5. 函數(shù)命名: 首字母小(xiǎo)寫駝峰式命名. 如iTaoLun();
6. 命名語義化, 盡可(kě)能利用英文單詞或其縮寫;
7. 盡量避免使用存在兼容性及消耗資源的方法或屬性, 比如eval() & innerText;
8. 後期優化中, JavaScript非注釋類中文字符須轉換成unicode編碼使用, 以避免編碼錯誤時(shí)亂碼顯示;
9. 代碼結構明(míng)了, 加适量注釋. 提高(gāo)函數(shù)重用率;
10. 注重與html分離, 減小(xiǎo)reflow, 注重性能.
圖片規範
1. 所有(yǒu)頁面元素類圖片均放入img文件夾, 測試用圖片放于img/demoimg文件夾;
2. 圖片格式僅限于gif || png || jpg;
3. 命名全部用小(xiǎo)寫英文字母 || 數(shù)字 || _ 的組合,其中不得(de)包含漢字 || 空(kōng)格 || 特殊字符;盡量用易懂的詞彙, 便于團隊其他成員理(lǐ) 解; 另, 命名分頭尾兩部分, 用下劃線隔開(kāi), 比如ad_left01.gif || btn_submit.gif;
4. 在保證視(shì)覺效果的情況下選擇最小(xiǎo)的圖片格式與圖片質量, 以減少(shǎo)加載時(shí)間(jiān);
5. 盡量避免使用半透明(míng)的png圖片(若使用, 請(qǐng)參考css規範相關說明(míng));
6. 運用css sprite技(jì)術(shù)集中小(xiǎo)的背景圖或圖标, 減小(xiǎo)頁面http請(qǐng)求, 但(dàn)注意, 請(qǐng)務必在對應的sprite psd源圖中劃參考線, 并保存至img目錄 下.
注釋規範
1. html注釋: 注釋格式 , '--'隻能在注釋的始末位置,不可(kě)置入注釋文字區(qū)域;
2. css注釋: 注釋格式 /*這兒是注釋*/;
3. JavaScript注釋, 單行(xíng)注釋使用'//這兒是單行(xíng)注釋' ,多(duō)行(xíng)注釋使用 /* 這兒有(yǒu)多(duō)行(xíng)注釋 */;
開(kāi)發及測試工具約定
建議使用Aptana || Dw || Vim , 亦可(kě)根據自己喜好選擇, 但(dàn)須遵循如下原則:
1. 不可(kě)利用IDE的視(shì)圖模式'畫(huà)'代碼;
2. 不可(kě)利用IDE生(shēng)成相關功能代碼, 比如Dw內(nèi)置的一些(xiē)功能js;
3. 編碼必須格式化, 比如縮進;
測試工具: 前期開(kāi)發僅測試FireFox & IE6 & IE7 & IE8 , 後期優化時(shí)加入Opera & Chrome & Safari;
建議測試順序: FireFox-->IE7-->IE8-->IE6-->Opera-->Chrome-->Safari, 建議安裝firebug及IE Tab Plus插件.
其他規範
1. 開(kāi)發過程中嚴格按分工完成頁面, 以提高(gāo)css複用率, 避免重複開(kāi)發;
2. 減小(xiǎo)沉冗代碼, 書(shū)寫所有(yǒu)人(rén)都可(kě)以看的懂的代碼. 簡潔易懂是一種美德. 為(wèi)用戶着想, 為(wèi)服務器(qì)着想.