觸屏版
全國(guó)服務(wù)熱線:0571-87205688
登錄
注冊(cè)
客戶中心
關(guān)注云客
分享
評(píng)論
贊0
規(guī)范目的
為提高團(tuán)隊(duì)協(xié)作效率, 便于后臺(tái)人員添加功能及前端后期優(yōu)化維護(hù), 輸出高質(zhì)量的文檔, 特制訂此文檔. 本規(guī)范文檔一經(jīng)確認(rèn), 前端開發(fā)人員必須按本文檔規(guī)范進(jìn)行前臺(tái)頁(yè)面開發(fā). 本文檔如有不對(duì)或者不合適的地方請(qǐng)及時(shí)提出, 經(jīng)討論后決定可以更改此文檔.
基本準(zhǔn)則
符合web標(biāo)準(zhǔn), 語(yǔ)義化html, 結(jié)構(gòu)表現(xiàn)行為分離, 兼容性優(yōu)良. 頁(yè)面性能方面, 代碼要求簡(jiǎn)潔明了有序, 盡可能的減小服務(wù)器負(fù)載, 保證最快的解析速度.
文件規(guī)范
1. html, css, js, images文件均歸檔至<系統(tǒng)開發(fā)規(guī)范>約定的目錄中;
2. html文件命名: 英文命名, 后綴.htm. 同時(shí)將對(duì)應(yīng)界面稿放于同目錄中, 若界面稿命名為中文, 請(qǐng)重命名與html文件同名, 以方便后端添加功能時(shí)查找對(duì)應(yīng)頁(yè)面;
3. css文件命名: 英文命名, 后綴.css. 共用base.css, 首頁(yè)index.css, 其他頁(yè)面依實(shí)際模塊需求命名.;
4. Js文件命名: 英文命名, 后綴.js. 共用common.js, 其他依實(shí)際模塊需求命名.
html書寫規(guī)范
1. 文檔類型聲明及編碼: 統(tǒng)一為html5聲明類型<!DOCTYPE html>; 編碼統(tǒng)一為<meta charset="utf-8" />, 書寫時(shí)利用IDE實(shí)現(xiàn)層次分明的縮進(jìn);
2. 非特殊情況下樣式文件必須外鏈至<head>...</head>之間;非特殊情況下JavaScript文件必須外鏈至頁(yè)面底部;
3. 引入樣式文件或JavaScript文件時(shí), 須略去默認(rèn)類型聲明, 寫法如下:
<link rel="stylesheet" href="..." />
<style>...</style>
<script src="..."></script>
4. 引入JS庫(kù)文件, 文件名須包含庫(kù)名稱及版本號(hào)及是否為壓縮版, 比如jquery-1.4.1.min.js; 引入插件, 文件名格式為庫(kù)名稱+插件名稱, 比如jQuery.cookie.js;
5. 所有編碼均遵循xhtml標(biāo)準(zhǔn), 標(biāo)簽 & 屬性 & 屬性命名 必須由小寫字母及下劃線數(shù)字組成, 且所有標(biāo)簽必須閉合, 包括br (<br />), hr(<hr />)等; 屬性值必須用雙引號(hào)包括;
6. 充分利用無(wú)兼容性問(wèn)題的html自身標(biāo)簽, 比如span, em, strong, optgroup, label,等等; 需要為html元素添加自定義屬性的時(shí)候, 首先要考慮下有沒(méi)有默認(rèn)的已有的合適標(biāo)簽去設(shè)置, 如果沒(méi)有, 可以使用須以"data-"為前綴來(lái)添加自定義屬性,避免使用"data:"等其他命名方式;
7. 語(yǔ)義化html, 如 標(biāo)題根據(jù)重要性用h*(同一頁(yè)面只能有一個(gè)h1), 段落標(biāo)記用p, 列表用ul, 內(nèi)聯(lián)元素中不可嵌套塊級(jí)元素;
8. 盡可能減少p嵌套, 如<p class="box"><p class="welcome">歡迎訪問(wèn)XXX, 您的用戶名是<p class="name">用戶名</p></p></p>完全可以用以下代碼替代: <p class="box"><p>歡迎訪問(wèn)XXX, 您的用戶名是<span>用戶名</span></p></p>;
9. 書寫鏈接地址時(shí), 必須避免重定向,例如:href="http://itaolun.com/", 即須在URL地址后面加上“/”;
10. 在頁(yè)面中盡量避免使用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. 能以背景形式呈現(xiàn)的圖片, 盡量寫入css樣式中;
13. 重要圖片必須加上alt屬性; 給重要的元素和截?cái)嗟脑丶由蟭itle;
14. 給區(qū)塊代碼及重要功能(比如循環(huán))加上注釋, 方便后臺(tái)添加功能;
15. 特殊符號(hào)使用: 盡可能使用代碼替代: 比如 <(<) & >(>) & 空格( ) & ?(?) 等等;
16. 書寫頁(yè)面過(guò)程中, 請(qǐng)考慮向后擴(kuò)展性;
17. class & id 參見 css書寫規(guī)范.
css書寫規(guī)范
1. 編碼統(tǒng)一為utf-8;
2. 協(xié)作開發(fā)及分工: i會(huì)根據(jù)各個(gè)模塊, 同時(shí)根據(jù)頁(yè)面相似程序, 事先寫好大體框架文件, 分配給前端人員實(shí)現(xiàn)內(nèi)部結(jié)構(gòu)&表現(xiàn)&行為; 共用css文件base.css由i書寫, 協(xié)作開發(fā)過(guò)程中, 每個(gè)頁(yè)面請(qǐng)務(wù)必都要引入, 此文件包含reset及頭部底部樣式, 此文件不可隨意修改;
3. class與id的使用: id是唯一的并是父級(jí)的, class是可以重復(fù)的并是子級(jí)的, 所以id僅使用在大的模塊上, class可用在重復(fù)使用率高及子級(jí)中; id原則上都是由我分發(fā)框架文件時(shí)命名的, 為JavaScript預(yù)留鉤子的除外;
4. 為JavaScript預(yù)留鉤子的命名, 請(qǐng)以 js_ 起始, 比如: js_hide, js_show;
5. class與id命名: 大的框架命名比如header/footer/wrapper/left/right之類的在2中由i統(tǒng)一命名.其他樣式名稱由 小寫英文 & 數(shù)字 & _ 來(lái)組合命名, 如i_comment, fontred, width200; 避免使用中文拼音, 盡量使用簡(jiǎn)易的單詞組合; 總之, 命名要語(yǔ)義化, 簡(jiǎn)明化.
6. 規(guī)避class與id命名(此條重要, 若有不明白請(qǐng)及時(shí)與i溝通):
a, 通過(guò)從屬寫法規(guī)避, 示例見d;
b, 取父級(jí)元素id/class命名部分命名, 示例見d;
c, 重復(fù)使用率高的命名, 請(qǐng)以自己代號(hào)加下劃線起始, 比如i_clear;
d, a,b兩條, 適用于在2中已建好框架的頁(yè)面, 如, 要在2中已建好框架的頁(yè)面代碼<p id="mainnav"></p>中加入新的p元素,
按a命名法則: <p id="mainnav"><p class="firstnav">...</p></p>,
樣式寫法: #mainnav .firstnav{.......}
按b命名法則: <p id="mainnav"><p class="main_firstnav">...</p></p>,
樣式寫法: .main_firstnav{.......}
7. css屬性書寫順序, 建議遵循 布局定位屬性-->自身屬性-->文本屬性-->其他屬性. 此條可根據(jù)自身習(xí)慣書寫, 但盡量保證同類屬性寫在一起. 屬性列舉: 布局定位屬性主要包括: margin?。Αadding?。Αloat(包括clear)?。Αosition(相應(yīng)的 top,right,bottom,left)?。Αisplay & visibility & overflow等; 自身屬性主要包括: width & height & background & border; 文本屬性主要包括: font?。Αolor?。Αext-align & text-decoration?。Αext-indent等;其他屬性包括: list-style(列表樣式)?。Αertical-vlign?。Αursor & z-index(層疊順序) & zoom等. 我所列出的這些屬性只是最常用到的, 并不代表全部;
8. 書寫代碼前, 考慮并提高樣式重復(fù)使用率;
9. 充分利用html自身屬性及樣式繼承原理減少代碼量, 比如:
<ul class="list"><li>這兒是標(biāo)題列表<span>2010-09-15</span></ul>
定義
ul.list li{position:relative} ul.list li span{position:absolute; right:0}
即可實(shí)現(xiàn)日期居右顯示
10. 樣式表中中文字體名, 請(qǐng)務(wù)必轉(zhuǎn)碼成unicode碼, 以避免編碼錯(cuò)誤時(shí)亂碼;
11. 背景圖片請(qǐng)盡可能使用sprite技術(shù), 減小http請(qǐng)求, 考慮到多人協(xié)作開發(fā), sprite按模塊制作;
12. 使用table標(biāo)簽時(shí)(盡量避免使用table標(biāo)簽), 請(qǐng)不要用width/ height/cellspacing/cellpadding等table屬性直接定義表現(xiàn), 應(yīng)盡可能的利用table自身私有屬性分離結(jié)構(gòu)與表現(xiàn), 如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文件中我會(huì)初始化表格樣式)
13. 杜絕使用<meta http-equiv="X-UA-Compatible" content="IE=7" /> 兼容ie8;
14. 用png圖片做圖片時(shí), 要求圖片格式為png-8格式,若png-8實(shí)在影響圖片質(zhì)量或其中有半透明效果, 請(qǐng)為ie6單獨(dú)定義背景:
_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=crop, src=’img/bg.png’);
15. 避免兼容性屬性的使用, 比如text-shadow || css3的相關(guān)屬性;
16. 減少使用影響性能的屬性, 比如position:absolute || float ;
17. 必須為大區(qū)塊樣式添加注釋, 小區(qū)塊適量注釋;
18. 代碼縮進(jìn)與格式: 建議單行書寫, 可根據(jù)自身習(xí)慣, 后期優(yōu)化i會(huì)統(tǒng)一處理;
JavaScript書寫規(guī)范
1. 文件編碼統(tǒng)一為utf-8, 書寫過(guò)程過(guò), 每行代碼結(jié)束必須有分號(hào); 原則上所有功能均根據(jù)XXX項(xiàng)目需求原生開發(fā), 以避免網(wǎng)上down下來(lái)的代碼造成的代碼污染(沉冗代碼 || 與現(xiàn)有代碼沖突 || ...);
2. 庫(kù)引入: 原則上僅引入jQuery庫(kù), 若需引入第三方庫(kù), 須與團(tuán)隊(duì)其他人員討論決定;
3. 變量命名: 駝峰式命名. 原生JavaScript變量要求是純英文字母, 首字母須小寫, 如iTaoLun;
jQuery變量要求首字符為'_', 其他與原生JavaScript 規(guī)則相同, 如: _iTaoLun;
另, 要求變量集中聲明, 避免全局變量.
4. 類命名: 首字母大寫, 駝峰式命名. 如 ITaoLun;
5. 函數(shù)命名: 首字母小寫駝峰式命名. 如iTaoLun();
6. 命名語(yǔ)義化, 盡可能利用英文單詞或其縮寫;
7. 盡量避免使用存在兼容性及消耗資源的方法或?qū)傩? 比如eval() & innerText;
8. 后期優(yōu)化中, JavaScript非注釋類中文字符須轉(zhuǎn)換成unicode編碼使用, 以避免編碼錯(cuò)誤時(shí)亂碼顯示;
9. 代碼結(jié)構(gòu)明了, 加適量注釋. 提高函數(shù)重用率;
10. 注重與html分離, 減小reflow, 注重性能.
圖片規(guī)范
1. 所有頁(yè)面元素類圖片均放入img文件夾, 測(cè)試用圖片放于img/demoimg文件夾;
2. 圖片格式僅限于gif || png || jpg;
3. 命名全部用小寫英文字母 || 數(shù)字 || _ 的組合,其中不得包含漢字 || 空格 || 特殊字符;盡量用易懂的詞匯, 便于團(tuán)隊(duì)其他成員理解; 另, 命名分頭尾兩部分, 用下劃線隔開, 比如ad_left01.gif || btn_submit.gif;
4. 在保證視覺(jué)效果的情況下選擇最小的圖片格式與圖片質(zhì)量, 以減少加載時(shí)間;
5. 盡量避免使用半透明的png圖片(若使用, 請(qǐng)參考css規(guī)范相關(guān)說(shuō)明);
6. 運(yùn)用css sprite技術(shù)集中小的背景圖或圖標(biāo), 減小頁(yè)面http請(qǐng)求, 但注意, 請(qǐng)務(wù)必在對(duì)應(yīng)的sprite psd源圖中劃參考線, 并保存至img目錄下.
注釋規(guī)范
1. html注釋: 注釋格式 <!--這兒是注釋-->, '--'只能在注釋的始末位置,不可置入注釋文字區(qū)域;
2. css注釋: 注釋格式 /*這兒是注釋*/;
3. JavaScript注釋, 單行注釋使用'//這兒是單行注釋' ,多行注釋使用 /* 這兒有多行注釋 */;
開發(fā)及測(cè)試工具約定
建議使用Aptana || Dw || Vim , 亦可根據(jù)自己喜好選擇, 但須遵循如下原則:
1. 不可利用IDE的視圖模式'畫'代碼;
2. 不可利用IDE生成相關(guān)功能代碼, 比如Dw內(nèi)置的一些功能js;
3. 編碼必須格式化, 比如縮進(jìn);
測(cè)試工具: 前期開發(fā)僅測(cè)試FireFox & IE6 & IE7 & IE8 , 后期優(yōu)化時(shí)加入Opera & Chrome;
建議測(cè)試順序: FireFox-->IE7-->IE8-->IE6-->Opera-->Chrome, 建議安裝firebug及IE Tab Plus插件.
其他規(guī)范
1. 開發(fā)過(guò)程中嚴(yán)格按分工完成頁(yè)面, 以提高css復(fù)用率, 避免重復(fù)開發(fā);
2. 減小沉冗代碼, 書寫所有人都可以看的懂的代碼. 簡(jiǎn)潔易懂是一種美德. 為用戶著想, 為服務(wù)器著想
猜你喜歡通過(guò)SWFObject在HTML中插入Adobe Flash
javascript深入理解js閉包
搜索優(yōu)化成熟模式強(qiáng)化網(wǎng)站競(jìng)爭(zhēng)力
百度關(guān)鍵詞排名不在有困惑
SEO:新站如何加快百度收錄速度
SEO必知:靜態(tài)、動(dòng)態(tài)、偽靜態(tài)URL的特點(diǎn)
ASO新版本關(guān)鍵詞覆蓋策略,如何做100個(gè)字符優(yōu)化?
未來(lái)的站內(nèi)SEO優(yōu)化需要做些什么
搜索引擎如何判定網(wǎng)站文章內(nèi)容的相關(guān)性
站內(nèi)SEO優(yōu)化到底要做哪些工作
評(píng)論(0人參與,0條評(píng)論)
發(fā)布評(píng)論
最新評(píng)論