web前端開發規範
javascript
web前端開發規範
目錄
- 1、規範目的
- 2、基本準則
- 3、文件規範
- 4、html書寫規範
- 5、css書寫規範
- 6、JavaScript書寫規範
- 7、圖片規範
- 8、註釋規範
- 9、開發及測試工具約定
- 10、其餘規範
- 11、CSS Hack
1、 規範目的
爲提升團隊協做效率, 便於後臺人員添加功能及前端後期優化維護, 輸出高質量的文檔,同是爲網站有一個更好的前端架構,網站的發展及將來打好一個基礎。本文檔若有不對或者不合適的地方請提出來。css
2、 基本準則
- 符合web標準, 語義化html.
- 結構表現行爲分離, 兼容性優良.
- 頁面性能方面, 代碼要求簡潔明瞭有序, 儘量的減少服務器負載, 保證最快的解析速度。
3、文件規範
- html, css, js, images文件均歸檔至 <系統開發規範> 約定的目錄中;
- html文件命名:命名以中文命名,依實際模塊命名,若是同一模塊以 來組合命名, 以方便添加功能時查找對應頁面,團結裏的相互理解。
- css文件命名: 英文命名, 後綴.css. 初始化樣式reset.css,其餘樣式依實際模塊頁面需求命名,共用樣式通常以模塊考慮來劃分命名,若有改版修改的css文件能夠採用,example:。
- Js文件命名: 英文命名, 後綴.js. 共用common.js, 其餘依實際模塊需求命名。
4、html書寫規範
- 文檔類型聲明及編碼: 文檔聲明統一用<!DOCTYPE HTML>,編碼統一爲
。
- 非特殊狀況下樣式文件必須外鏈至……之間;非特殊狀況下JavaScript文件必須外鏈至頁面底部以前;
- 全部編碼均遵循html5標準, 標籤 & 屬性 & 屬性命名 必須由小寫字母及下劃線數字組成, 成對的標籤必須閉合,, 單獨標籤無需閉合,,等; 屬性值必須用雙引號包括;
- 充分利用無兼容性問題的html自身標籤, 好比span, em, strong, optgroup, label,等等。
- 語義化html, 如 標題根據重要性用h*(同一頁面只能有一個h1), 段落標記用p, 列表用ul, 內聯元素中不可嵌套塊級元素;
- 儘量減小div嵌套, 如徹底能夠用如下代碼替代: ;
- 引入JS庫文件,統一使用requirejs或seajs加載JS。文件名須包含庫名稱及版本號及是否爲壓縮版, 好比jquery-1.4.1.min.js; 引 入插件, 文件名格式爲庫名稱+插件名稱, 好比jQuery.cookie.js;
- 書寫連接地址時, 必須避免重定向,例如:, 即須在URL地址後面加上;
- 在頁面中避免使用style屬性,即
- 嚴格區分做爲內容的圖片和做爲背景的圖片。做爲背景的圖片採用Css sprite技術,放在一張大圖裏。Css sprite技術的優勢是減小了http請求數,但使圖片面向css的backround-position增長了耦合度,也增長了維護成本。若是圖片有修改,不要刪除已添加的圖片,在空白處新增修改後的圖片,減小修改風險。
- 圖片必須加上alt屬性; 給重要的元素和截斷的元素加上title;
- 給區塊代碼及重要功能(好比循環)加上註釋,方便閱讀和後期維護。
- 特殊符號使用: 儘量使用代碼替代: 好比,,,,等等;
- 書寫頁面過程當中, 請考慮向後擴展性;
- 不要在 html 中加入標籤來清理浮勱,經過在浮動元素的父元素上添加 來
清除浮動。
- 字體名稱最好映射成對應的英文名,例如:黑體(SimHei) 宋體(SimSun) 微軟雅黑(Microsoft Yahei)。
-17. 、 等能夠縮寫的屬性,儘可能使用縮寫形式
;
;
-18. 不要直接爲 html 標籤添加 css 樣式,好比
5、css書寫規範
- 編碼統一爲utf-8;都用小寫
- class與id的使用: 通常都使用class,特殊除外,因id的優先級比class的高。
- 樣式命名推薦使用英文避免使用漢語拼音, 儘可能使用簡易的單詞組合; 命名方式參照《WEB前端開 發CSS命名參考》,格式統一採起,的方式,經過分割
- css屬性書寫順序, 建議遵循 佈局定位屬性–>自身屬性–>文本屬性–>其餘屬性. 此條可根據 自身習慣書寫, 但儘可能保證同類屬性寫在一塊兒。
1) 定位屬性(好比:display, position, float, clear, visibility, table-layout等)html
2) 自身屬性(好比:width, height, margin, padding, border等)前端
3) 文本屬性(好比:font, color, line-height, text-align, text-indent, vertical-align等)html5
4) 其餘屬性(好比:background, opacity, cursor,content, list-style, quotes等)java
- 避免濫用自選擇器。和選擇儘可能後者。提高性能的同時方便維護。
- 樣式表中中文字體名, 請務必轉碼成unicode碼, 以免編碼錯誤時亂碼;
- 使用table標籤時, 請不要用/ //等屬性直接定義 表現, 應儘量的利用table自身私有屬性分離結構與表現, 如 ,,,,,,,; (及的css控制方法: , , base.css文件中我會初始化表格樣式)
- 儘可能不使用 和相似代碼的寫法。
- 用png圖片作圖片時, 要求圖片格式爲png-24格式。
- 兼容性屬性的使用, 好比(文字陰影)、css3的相關屬性在保證目前主流瀏覽器使 用正常的狀況下可使用來對頁面進行錦上添花式的設計。
- 減小使用影響性能的屬性, 好比 || ,只是減小使用。
- 必須爲大區塊樣式添加註釋, 小區塊適量註釋。
- 代碼縮進與格式:單行書寫, 統一使用tab進行縮進。
- 避免 class 跟 id 重名。
6、JavaScript書寫規範
- 文件編碼統一爲utf-8, 書寫過程過, 每行代碼結束必須有分號; 要檢查網上down下來的代碼造 成的代碼污染(沉冗衝突,代碼注入„)等,有的能夠firefox的一些擴展插件分析;
- 庫引入: 原則上僅引入jQuery庫, 若需引入第三方庫, 須與團隊其餘人員討論決定。
- 命名語義化, 儘量利用英文單詞或其縮寫,函數命名首字母小寫,採用駝峯命名法。
- 代碼結構明瞭, 加適量註釋. 提升函數重用率;
- JS代碼應該與HTML完全分離, 減少reflow, 注重性能。
- 避免全局變量。
- 命名語義化, 儘量利用英文單詞或其縮寫。
7、圖片規範
- 全部頁面元素類圖片均放入imges文件夾。
- 圖片格式僅限於gif || png || jpg。
- 命名所有用 ,, 的組合,其中不得包含,,;盡 量用易懂的詞彙, 便於團隊其餘成員理解; 另, 命名分頭尾兩部分, 用下劃線隔開, 好比 || ;
- 在保證視覺效果的狀況下選擇最小的圖片格式與圖片質量, 以減小加載時間;
- 運用css sprite技術集中小的背景圖或圖標, 減少頁面http請求。
8、註釋規範
- html註釋: 註釋格式 , 只能在註釋的始末位置,不可置入註釋文字區域;
- css註釋: 註釋格式 ;
- JavaScript註釋, 單行註釋使用 ,多行註釋使用;
9、開發工具及測試工具約定
- 編碼必須格式化, 好比縮進;
- 測試工具: 前期開發僅測試Chrome & IE8 , 後期優化時加入IE其餘瀏覽器 & FireFox;
- 統一使用 編輯、查看、使用、校驗接口數據
10、其餘規範
- 開發過程當中嚴格按分工完成頁面, 以提升css複用率, 避免重複開發;
- 減少沉冗代碼, 書寫全部人均可以看的懂的代碼. 簡潔易懂是一種美德。 爲用戶着想, 爲服務 器着想。
11、CSS Hack
即使是完美的CSS 也未必能在目前衆多的終端瀏覽器中呈現一致的效果,因此,CSS Hack 在不少狀況下都是必要的,建議先以對CSS 標準支持得比較好的瀏覽器(好比「Firefox」或者「Chrome」)爲主編輯CSS ,最後再處理IE 的兼容性——單獨爲IE創建一個CSS 文件(好比 for-ie.css, fuck-ie.css, ie-hack.css等),最後在 HTML 文件中,經過IE的條件註釋按需引用。
jquery
_title__時間日期new_blog_1212.css<div>something</div><p>something</p>input type='text' name='demo'><br><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.baidu.com/"/style="some style"轉義字符<&>``空格».clearfix.clearfix:after{content:"."; display:block;height:0;visibility:hidden;clear:both;} .clearfix{zoom:1}backgroundfontbackground: color image repeat attachment positionfont: style weight size/lineHeight familydiv{width: 100px;}head-navdrop-menu-#test span{}#test .span{}widthheightcellspacingcellpaddingtabletheadtrthtdtbodytfootcolgroupscopecellspaingcellpaddingtable{border:0;margin:0;border-collapse:collapse;}table th, table td{padding:0;}<meta http-equiv="X-UA-Compatible" content="IE=7" />*htmltext-shadowposition:absolutefloatdemoFunction小寫英文字母數字_漢字空格特殊字符ad_left01.gifbtn_submit.gif<!--這兒是註釋-->-/*這兒是註釋*///這兒是單行註釋/* 這兒有多行註釋 */RAP