規範目的css
爲提升團隊協做效率, 便於後臺人員添加功能及前端後期優化維護, 輸出高質量的文檔, 特制訂此文檔. 本規範文檔一經確認, 前端開發人員必須按本文檔規範進行前臺頁面開發. 本文檔若有不對或者不合適的地方請及時提出, 經討論決定後方可更改.html
基本準則前端
符合web標準, 語義化html, 結構表現行爲分離, 兼容性優良. 頁面性能方面, 代碼要求簡潔明瞭有序, 儘量的減少服務器負載, 保證最快的解析速度.html5
文件規範jquery
一、 html, css, js, images文件均歸檔至<系統開發規範>約定的目錄中;css3
二、 html文件命名: 英文命名, 後綴.htm. 同時將對應界面稿放於同目錄中, 若界面稿命名爲中文, 請重命名與html文件同名, 以方便後端添加功能時查找對應頁面;web
三、 css文件命名: 英文命名, 後綴.css. 共用base.css, 首頁index.css, 其餘頁面依實際模塊需求命名.;後端
四、 Js文件命名: 英文命名, 後綴.js. 共用common.js, 其餘依實際模塊需求命名.服務器
一位好的Web前端開發工程師在知識體系上既要有廣度,又要有深度,因此不少大公司即便出高薪也很難招聘到理想的前端開發工程師。那麼如何系統的學**企業實用的web前端技術呢,爲此創建了一個web前端的直播上課學**扣扣裙,前面數字是五一四,中間的數字是一六七,最後是六七八,將數字鏈接起來就是了。真正想要學**的能夠進入,打醬油的就不要浪費你們的時間了。如今說的重點不在於講解技術,而是更側重於對技巧的講解。技術非黑即白,只有對和錯,而技巧則見仁見智。cookie
html書寫規範
一、 文檔類型聲明及編碼: 統一爲html5聲明類型; 編碼統一爲 , 書寫時利用IDE實現井井有條的縮進;
二、 非特殊狀況下樣式文件必須外鏈至...之間;非特殊狀況下JavaScript文件必須外鏈至頁面底部;
三、引入樣式文件或JavaScript文件時, 須略去默認類型聲明,
四、 引入JS庫文件, 文件名須包含庫名稱及版本號及是否爲壓縮版, 好比jquery-1.4.1.min.js; 引入插件, 文件名格式爲庫名稱+插件名稱, 好比jQuery.cookie.js; 五、 全部編碼均遵循xhtml標準, 標籤 & 屬性 & 屬性命名 必須由小寫字母及下劃線數字組成, 且全部標籤必須閉合, 包括 br (), hr()等; 屬性值必須用雙引號包括; 六、充分利用無兼容性問題的html自身標籤, 好比span, em, strong, optgroup, label,等等; 須要爲html元素添加自定義屬性的時候, 首先要考慮下有沒有默認的已有的合適標籤去設置, 若是沒有, 可使用須以"data-"爲前綴來添加自定義屬性,避免使用"data:"等其餘命名方式;
七、語義化html, 如 標題根據重要性用h*(同一頁面只能有一個h1), 段落標記用p, 列表用ul, 內聯元素中不可嵌套塊級元素;
八、儘量減小div嵌套, 如 歡迎訪問XXX, 您的用戶名是 用戶名 徹底能夠用如下代碼替代: 歡迎訪問XXX, 您的用戶名是用戶名;
九、書寫連接地址時, 必須避免重定向,例如:href="http://itaolun.com/", 即須在URL地址後面加上「/」;
十、在頁面中儘可能避免使用style屬性,即style="…";
十一、必須爲含有描述性表單元素(input, textarea)添加label, 如 姓名: 須寫成: 姓名:
十二、能以背景形式呈現的圖片, 儘可能寫入css樣式中;
1三、重要圖片必須加上alt屬性; 給重要的元素和截斷的元素加上title;
1四、給區塊代碼及重要功能(好比循環)加上註釋, 方便後臺添加功能;
1五、特殊符號使用: 儘量使用代碼替代: 好比 <(<) & >(>) & 空格( ) & »(») 等等;
1六、書寫頁面過程當中, 請考慮向後擴展性;
1七、class & id 參見 css書寫規範.
css書寫規範
一、編碼統一爲utf-8;
二、協做開發及分工: i會根據各個模塊, 同時根據頁面類似程序, 事先寫**體框架文件, 分配給前端人員實現內部結構&表現&行爲; 共用css文件base.css由i書寫, 協做開發過程當中, 每一個頁面請務必都要引入, 此文件包含reset及頭部底部樣式, 此文件不可隨意修改;
三、class與id的使用: id是惟一的並是父級的, class是能夠重複的並是子級的, 因此id僅使用在大的模塊上, class可用在重複使用率高及子級中; id原則上都是由我分發框架文件時命名的, 爲JavaScript預留鉤子的除外;
四、爲JavaScript預留鉤子的命名, 請以 js_ 起始, 好比: js_hide, jsshow;
五、class與id命名: 大的框架命名好比header/footer/wrapper/left/right之類的在2中由i統一命名.其餘樣式名稱由 小寫英文 & 數字 & 來組合命名, 如i_comment, fontred, width200; 避免使用中文拼音, 儘可能使用簡易的單詞組合; 總之, 命名要語義化, 簡明化
. 六、規避class與id命名(此條重要, 如有不明白請及時與i溝通): a) 經過從屬寫法規避, 示例見d; b)取父級元素id/class命名部分命名, 示例見d; c)重複使用率高的命名, 請以本身代號加下劃線起始, 好比i_clear; d)a,b兩條, 適用於在2中已建好框架的頁面, 如, 要在2中已建好框架的頁面代碼 中加入新的div元素, 按a命名法則:..., 樣式寫法: #mainnav .firstnav{.......} 按b命名法則:..., 樣式寫法: .main_firstnav{.......}
七、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; 我所列出的這些屬性只是最經常使用到的, 並不表明所有;
八、書寫代碼前, 考慮並提升樣式重複使用率;
九、充分利用html自身屬性及樣式繼承原理減小代碼量, 好比: 這兒是標題列表2010-09- 15 定義 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文件中我會初始化表格樣式)
1三、杜絕使用 兼容 ie8;
1四、用png圖片作圖片時, 要求圖片格式爲png-8格式,若png-8實在影響圖片質量或其中有半透明效果, 請爲ie6單獨定義背景: _background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (sizingMethod=crop, src=’img/bg.png’);
1五、 避免兼容性屬性的使用, 好比text-shadow || css3的相關屬性;
1六、減小使用影響性能的屬性, 好比position:absolute || float ;
1七、必須爲大區塊樣式添加註釋, 小區塊適量註釋;
1八、代碼縮進與格式: 建議單行書寫, 可根據自身**慣, 後期優化i會統一處理;
JavaScript書寫規範
一、文件編碼統一爲utf-8, 書寫過程過, 每行代碼結束必須有分號; 原則上全部功能均根據XXX項目需求原生開發, 以免網上down下來的代碼形成的代碼污染(沉冗代碼 || 與現有代碼衝突 || ...);
二、庫引入: 原則上僅引入jQuery庫, 若需引入第三方庫, 須與團隊其餘人員討論決定;
三、變量命名: 駝峯式命名. 原生JavaScript變量要求是純英文字母, 首字母須小寫, 如iTaoLun; jQuery變量要求首字符爲'_', 其餘與原生JavaScript 規則相同, 如: _iTaoLun; 另, 要求變量集中聲明, 避免全局變量.
四、類命名: 首字母大寫, 駝峯式命名. 如 ITaoLun;
五、函數命名: 首字母小寫駝峯式命名. 如iTaoLun();
六、命名語義化, 儘量利用英文單詞或其縮寫;
七、儘可能避免使用存在兼容性及消耗資源的方法或屬性, 好比eval_r() & 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 & Safari; 建議測試順序: FireFox-->IE7-->IE8-->IE6-->Opera-->Chrome-->Safari, 建議安裝firebug及IE Tab Plus插件.