常用html、CSS、javascript前端命名規範

來源:互聯網
上載者:User

標籤:連結地址   title   microsoft   參考   服務   hid   doctype   orm   isp   

無意發現自己檔案夾裡面有這麼一個檔案,具體從哪裡來的不記得了,仔細看下,發現總結的挺好的,貼出來分享一下。 

無論是從技術角度還是開發視角,對於web前端開發規範文檔都有一定規範,本文就css3和html5的發展前景總結了一系列的web開發文檔,僅供大家參考。

 

規範目的:

為提高團隊協作效率, 便於後台人員添加功能及前端後期最佳化維護, 輸出高品質的文檔, 特製訂此文檔. 本規範文檔一經確認, 前端開發人員必須按本文檔規範進行前台頁面開發. 本文檔如有不對或者不合適的地方請及時提出, 經討論決定後方可更改.

 

基本準則:

符合web標準, 語義化html, 結構表現行為分離, 相容性優良. 頁面效能方面, 代碼要求簡潔明了有序, 儘可能的減小伺服器負載, 保證最快的解析速度.

 

檔案規格1. html, css, js, images檔案均歸檔至<系統開發規範>約定的目錄中;2. html檔案命名: 英文命名, 尾碼.htm. 同時將對應介面稿放於同目錄中, 若介面稿命名為中文, 請重新命名與html檔案同名, 以方便後端添加功能時尋找對應頁面;3. css檔案命名: 英文命名, 尾碼.css. 共用base.css, 首頁index.css, 其他頁面依實際模組需求命名.;

4. Js檔案命名: 英文命名, 尾碼.js. 共用common.js, 其他依實際模組需求命名.

 

html書寫規範1. 文件類型聲明及編碼: 統一為html5宣告類型<!DOCTYPE html>; 編碼統一為<meta charset=”utf-8″ />, 書寫時利用IDE實現層次分明的縮排;2. 非特殊情況下樣式檔案必須外鏈至<head>…</head>之間;非特殊情況下JavaScript檔案必須外鏈至頁面底部;3. 引入樣式檔案或JavaScript檔案時, 須略去預設型別宣告, 寫法如下:<link rel=”stylesheet” href=”…” /><style>…</style><script src=”…”></script>4. 引入JS庫檔案, 檔案名稱須包含庫名稱及版本號碼及是否為壓縮版, 比如jquery-1.4.1.min.js; 引入外掛程式, 檔案名稱格式為庫名稱+外掛程式名稱, 比如jQuery.cookie.js;5. 所有編碼均遵循xhtml標準, 標籤 & 屬性 & 屬性命名 必須由小寫字母及底線數字組成, 且所有標籤必須閉合, 包括br (<br />), hr(<hr />)等; 屬性值必須用雙引號包括;6. 充分利用無相容性問題的html自身標籤, 比如span, em, strong, optgroup, label,等等; 需要為html元素添加自訂屬性的時候, 首先要考慮下有沒有預設的已有的合適標籤去設定, 如果沒有, 可以使用須以”data-”為首碼來添加自訂屬性,避免使用”data:”等其他命名方式;7. 語義化html, 如 標題根據重要性用h*(同一頁面只能有一個h1), 段落標記用p, 列表用ul, 內嵌元素中不可嵌套區塊層級元素;8. 儘可能減少div嵌套, 如<div class=”box”><div class=”welcome”>歡迎訪問XXX, 您的使用者名稱是<div class=”name”>使用者名稱</div></div></div>完全可以用以下代碼替代: <div class=”box”><p>歡迎訪問XXX, 您的使用者名稱是<span>使用者名稱</span></p></div>;9. 書寫連結地址時, 必須避免重新導向,例如:href=”http://itaolun.com/”, 即須在URL地址後面加上“/”;10. 在頁面中盡量避免使用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. 能以背景形式呈現的圖片, 盡量寫入css樣式中;13. 重要圖片必須加上alt屬性; 給重要的元素和截斷的元素加上title;14. 給區塊代碼及重要功能(比如迴圈)加上注釋, 方便後台添加功能;15. 特殊符號使用: 儘可能使用代碼替代: 比如 <(<) & >(&gt;) & 空格( ) & ?(?) 等等;16. 書寫頁面過程中, 請考慮向後擴充性;

17. class & id 參見 css書寫規範.

 

css書寫規範1. 編碼統一為utf-8;2. 協作開發及分工: i會根據各個模組, 同時根據頁面相似程式, 事先寫好大體架構檔案, 分配給前端人員實現內部結構&表現&行為; 共用css檔案base.css由i書寫, 協作開發過程中, 每個頁面請務必都要引入, 此檔案包含reset及頭部底部樣式, 此檔案不可隨意修改;3. class與id的使用: id是唯一的並是父級的, class是可以重複的並是子級的, 所以id僅使用在大的模組上, class可用在重複使用率高及子級中; id原則上都是由我分發架構檔案時命名的, 為JavaScript預留鉤子的除外;4. 為JavaScript預留鉤子的命名, 請以 js_ 起始, 比如: js_hide, js_show;5. class與id命名: 大的架構命名比如header/footer/wrapper/left/right之類的在2中由i統一命名.其他樣式名稱由 小寫英文 & 數字 & _ 來組合命名, 如i_comment, fontred, width200; 避免使用中文拼音, 盡量使用簡易的單片語合; 總之, 命名要語義化, 簡明化.6. 規避class與id命名(此條重要, 若有不明白請及時與i溝通):a, 通過從屬寫法規避, 樣本見d;b, 取父級元素id/class命名部分命名, 樣本見d;c, 重複使用率高的命名, 請以自己代號加底線起始, 比如i_clear;d, a,b兩條, 適用於在2中已建好架構的頁面, 如, 要在2中已建好架構的頁面代碼<div id=”mainnav”></div>中加入新的div元素,按a命名法則: <div id=”mainnav”><div class=”firstnav”>…</div></div>,樣式寫法:  #mainnav  .firstnav{…….}按b命名法則: <div id=”mainnav”><div class=”main_firstnav”>…</div></div>,樣式寫法:  .main_firstnav{…….}7. 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等;其他屬性包括: list-style(列表樣式) & vertical-vlign & cursor & z-index(層疊順序) & zoom等. 我所列出的這些屬性只是最常用到的, 並不代表全部;8. 書寫代碼前, 考慮並提高樣式重複使用率;9. 充分利用html自身屬性及樣式繼承原理減少代碼量, 比如:<ul class=”list”><li>這兒是標題列表<span>2010-09-15</span></ul>定義ul.list li{position:relative}  ul.list li span{position:absolute; right:0}即可實現日期居右顯示10. 樣式表中中文字型名, 請務必轉碼成unicode碼, 以避免編碼錯誤時亂碼;11. 背景圖片請儘可能使用sprite技術, 減小http請求, 考慮到多人協作開發, sprite按模組製作;12. 使用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檔案中我會初始化表格樣式)13. 杜絕使用<meta http-equiv=”X-UA-Compatible” content=”IE=7″ /> 相容ie8;14. 用png圖片做圖片時, 要求圖片格式為png-8格式,若png-8實在影響圖片品質或其中有半透明效果, 請為ie6單獨定義背景:_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=crop, src=’img/bg.png’);15. 避免相容性屬性的使用, 比如text-shadow || css3的相關屬性;16. 減少使用影響效能的屬性, 比如position:absolute || float ;17. 必須為大區塊樣式添加註釋, 小區塊適量注釋;

18. 代碼縮排與格式: 建議單行書寫, 可根據自身習慣, 後期最佳化i會統一處理;

 

JavaScript書寫規範1. 檔案編碼統一為utf-8, 書寫過程過, 每行代碼結束必須有分號; 原則上所有功能均根據XXX項目需求原生開發, 以避免網上down下來的代碼造成的代碼汙染(沉冗代碼 || 與現有代碼衝突 || …);2. 庫引入: 原則上僅引入jQuery庫, 若需引入第三方庫, 須與團隊其他人員討論決定;3. 變數命名: 駝峰式命名. 原生JavaScript變數要求是純英文字母, 首字母須小寫, 如iTaoLun;jQuery變數要求首字元為’_’, 其他與原生JavaScript 規則相同, 如: _iTaoLun;另, 要求變數集中聲明, 避免全域變數.4. 類命名: 首字母大寫, 駝峰式命名. 如 ITaoLun;5. 函數命名: 首字母小寫駝峰式命名. 如iTaoLun();6. 命名語義化, 儘可能利用英文單詞或其縮寫;7. 盡量避免使用存在相容性及消耗資源的方法或屬性, 比如eval() & innerText;8. 後期最佳化中, JavaScript非注釋類中文字元須轉換成unicode編碼使用, 以避免編碼錯誤時亂碼顯示;9. 代碼結構明了, 加適量注釋. 提高函數重用率;

10. 注重與html分離, 減小reflow, 注重效能.

 

圖片規範1. 所有頁面元素類圖片均放入img檔案夾, 測試用圖片放於img/demoimg檔案夾;2. 圖片格式僅限於gif || png || jpg;3. 命名全部用小寫英文字母 || 數字 || _ 的組合,其中不得包含漢字 || 空格 || 特殊字元;盡量用易懂的詞彙, 便於團隊其他成員理解; 另, 命名分頭尾兩部分, 用底線隔開, 比如ad_left01.gif || btn_submit.gif;4. 在保證視覺效果的情況下選擇最小的圖片格式與圖片品質, 以減少載入時間;5. 盡量避免使用半透明的png圖片(若使用, 請參考css規範相關說明);

6. 運用css sprite技術集中小的背景圖或表徵圖, 減小頁面http請求, 但注意, 請務必在對應的sprite psd源圖中劃輔助線, 並儲存至img目錄下.

 

注釋規範1. html注釋: 注釋格式 <!–這兒是注釋–>, ’–’只能在注釋的始末位置,不可置入注釋文字地區;2. css注釋: 注釋格式 /*這兒是注釋*/;

3. JavaScript注釋, 單行注釋使用’//這兒是單行注釋’ ,多行注釋使用 /* 這兒有多行注釋 */;

 

開發及測試載入器約定建議使用Aptana || Dw || Vim , 亦可根據自己喜好選擇, 但須遵循如下原則:1. 不可利用IDE的視圖模式’畫’代碼;2. 不可利用IDE產生相關功能代碼, 比如Dw內建的一些功能js;3. 編碼必須格式化, 比如縮排;測試載入器: 前期開發僅測試FireFox & IE6 & IE7 & IE8 , 後期最佳化時加入Opera & Chrome & Safari;建議測試順序: FireFox–>IE7–>IE8–>IE6–>Opera–>Chrome–>Safari, 建議安裝firebug及IE Tab Plus外掛程式.其他規範1. 開發過程中嚴格按分工完成頁面, 以提高css複用率, 避免重複開發;2. 減小沉冗代碼, 書寫所有人都可以看的懂的代碼. 簡潔易懂是一種美德. 為使用者著想, 為伺服器著想.

常用html、CSS、javascript前端命名規範

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.