規范目的
為提高團隊協作效率, 便于后臺人員添加功能及前端后期優化維護, 輸出高質量的文檔, 特制訂此文檔. 本規范文檔一經確認, 前端開發人員必須按本文檔規范進行前臺頁面開發. 本文檔如有不對或者不合適的地方請及時提出, 經討論決定后方可更改.
基本準則
符合web標準, 語義化html, 結構表現行為分離, 兼容性優良. 頁面性能方面, 代碼要求簡潔明了有序, 盡可能的減小服務器負載, 保證最快的解析速度.
ASP命名規則參考
- 從組件類型名中移去T前綴。例如TButton變成Button;
- 除了第一個元音,刪去所有元音字母。例如,Button變成bttn,Edit變成edt;
- 壓縮雙字母。例如,bttn變成btn;
- 如相同前綴名導致發生沖突,則在某一組件前綴中加入一個元音。例如在TButton組件的前綴中加入元音變為batn,以區別Button的前綴;
- 用不用皆可:去掉一些普遍重復的部分,例如textbox按照前上3條的說明應該書寫為txtbx,但是box一詞是很多組件共同擁有的詞條,所以被去掉,縮寫為“txt”。
標準控件
1 btn Button
2 chk CheckBox
3 ckl CheckedListBox
4 cmb ComboBox
5 dtp DateTimePicker
6 lbl Label
7 llb LinkLabel
8 lst ListBox
9 lvw ListView
10 mtx MaskedTextBox
11 cdr MonthCalendar
12 icn NotifyIcon
13 nud NumeircUpDown
14 pic PictureBox
15 prg ProgressBar
16 rdo RadioButton
17 rtx RichTextBox
18 txt或tbx TextBox
19 tip ToolTip
20 tvw TreeView
21 wbs WebBrowser
容器控件
1 flp FlowLayoutPanel
2 grp GroupBox
3 pnl Panel
4 spl SplitContainer
5 tab TabControl
6 tlp TableLayoutPanel
菜單和工具欄
1 cms ContextMenuStrip
2 mns MenuStrip
3 ssr StatusStrip
4 tsr ToolStrip
5 tsc ToolStripContainer
數據
1 dts DataSet
2 dgv DataGridView
3 bds BindingSource
4 bdn BindingNavigator
5 rpv ReportViewer
對話框
1 cld ColorDialog
2 fbd FolderBrowserDialog
3 fnd FontDialog
4 ofd OpenFileDialog
5 sfd SaveFileDialog
組件
1 bgw BackgroundWorker
2 dre DirectoryEntry
3 drs DirectorySearcher
4 err ErrorProvider
5 evl EventLog
6 fsw FileSystemWatcher
7 hlp HelpProvider
8 img ImageList
9 msq MessageQueue
10 pfc PerformanceCounter
11 prc Process
12 spt SerialPort
13 scl ServiceController
14 tmr Timer
印刷
1 psd PageSetupDialog
2 prd PrintDialog
3 pdc PrintDocument
4 prv PrintPreviewControl
5 ppd PrintPreviewDialog
水晶報表
1 crv CrystalReportViewer
2 rpd ReportDocument
其他
1 dud DomainUpDown
2 hsc HScrollBar
3 prg PropertyGrid
4 spl Splitter
5 trb TrackBar
6 vsc VScrollBar
文件規范
- 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文件必須外鏈至頁面底部; - 引入樣式文件或JavaScript文件時, 須略去默認類型聲明, 寫法如下:
<link rel=”stylesheet” href=”…” />
<style>…</style>
<script src=”…”></script>
- 引入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嵌套, 如
<div class=”box”>
<div class=”welcome”>
歡迎訪問XXX, 您的用戶名是
<div class=”name”>用戶名
</div></div></div>
完全可以用以下代碼替代:
<div class=”box”>
<p>歡迎訪問XXX, 您的用戶名是<span>用戶名</span>
</p>
</div>
- 書寫鏈接地址時, 必須避免重定向,例如:
href=”http://www.163.com/”
即須在URL地址后面加上“/”; - 在頁面中盡量避免使用style屬性, 即
style=”…”
- 能以背景形式呈現的圖片, 盡量寫入css樣式中;
- 重要圖片必須加上alt屬性; 給重要的元素和截斷的元素加上title;
- 給區塊代碼及重要功能(比如循環)加上注釋, 方便后臺添加功能;
- 書寫頁面過程中, 請考慮向后擴展性;
- class & id 參見 css書寫規范.
css書寫規范
- 編碼統一為utf-8;
- 協作開發及分工: 會根據各個模塊, 同時根據頁面相似程序, 事先寫好大體框架文件, 分配給前端人員實現內部結構&表現&行為; 共用css文件為base.css, 協作開發過程中, 每個頁面請務必都要引入, 此文件包含頭部底部樣式, 此文件不可隨意修改;
- class與id的使用: id是唯一的并是父級的, class是可以重復的并是子級的, 所以id僅使用在大的模塊上, class可用在重復使用率高及子級中; id原則上都是在分發框架文件時命名的, 為JavaScript預留鉤子的除外;
- 為JavaScript預留鉤子的命名, 請以 js_ 起始, 比如: js_hide, js_show;
- class與id命名: 大的框架命名比如header/footer/wrapper/left/right之類的在2中統一命名.其他樣式名稱由 小寫英文 & 數字 & _ 來組合命名, 如i_comment, width; 避免使用中文拼音, 盡量使用簡易的單詞組合; 總之, 命名要語義化, 簡明化.
- 規避class與id命名(此條重要, 若有不明白請及時相互溝通):
- 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等;
- 書寫代碼前, 考慮并提高樣式重復使用率;
- 樣式表中中文字體名, 請務必轉碼成unicode碼, 以避免編碼錯誤時亂碼;
- 背景圖片請盡可能使用sprite技術, 減小http請求, 考慮到多人協作開發, sprite按模塊制作;
- 避免兼容性屬性的使用, 比如text-shadow || css3的相關屬性;
- 減少使用影響性能的屬性, 比如position:absolute || float ;
- 必須為大區塊樣式添加注釋, 小區塊適量注釋;
- 代碼縮進與格式: 建議單行書寫, 可根據自身習慣, 后期優化會統一處理;
JavaScript書寫規范
- 文件編碼統一為utf-8, 書寫過程過, 每行代碼結束必須有分號; 原則上所有功能均根據XXX項目需求原生開發, 以避免從網上download的代碼造成的代碼污染(沉冗代碼 || 與現有代碼沖突 || …);
- 庫引入: 原則上僅引入jQuery庫, 若需引入第三方庫, 須與團隊其他人員討論決定;
- 變量命名: 駝峰式命名. 原生JavaScript變量要求是純英文字母, 首字母須小寫, 如iLiXiaoYang;
jQuery變量要求首字符為’_', 其他與原生JavaScript 規則相同, 如:_iLiXiaoYang
另外, 要求變量集中聲明, 避免全局變量. - 類命名: 首字母大寫, 駝峰式命名. 如 ILiXiaoYang;
- 函數命名: 首字母小寫, 駝峰式命名. 如iLiXiaoYang();
- 命名語義化, 盡可能利用英文單詞或其縮寫;
- 盡量避免使用存在兼容性及消耗資源的方法或屬性, 比如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注釋, 單行注釋使用’//這兒是單行注釋’ ,多行注釋使用 /* 這兒有多行注釋 */;
開發及測試工具約定
建議使用Aptana || Dw || Vim , 亦可根據自己喜好選擇, 但須遵循如下原則:
- 不可利用IDE的視圖模式’畫’代碼;
- 不可利用IDE生成相關功能代碼, 比如Dw內置的一些功能js;
- 編碼必須格式化, 比如縮進;
測試工具:
前期開發僅測試FireFox & IE6 & IE7 & IE8 , 后期優化時加入Opera & Chrome;
建議測試順序: FireFox–>IE7–>IE8–>IE6–>Opera–>Chrome, 建議安裝firebug及IE Tab Plus插件.
其他規范
- 開發過程中嚴格按分工完成頁面, 以提高css復用率, 避免重復開發;
- 減小沉冗代碼, 書寫所有人都可以看的懂的代碼. 簡潔易懂是一種美德. 為用戶著想, 為服務器著想
本文轉自:
http://www.cnblogs.com/baiboy
個人做了一下排版, 個人博客(一個正在認真學習Java的大二學生):
博客地址
歡迎訪問和交流, 謝謝!