HTML 和 CSS 代碼結構如何寫更加規範?
項目前期html代碼結構寫的不規範,後期導致瀏覽器兼容出現大量問題,大家分享下經驗(代碼規範方面),謝謝
規範,規範,一個優秀的公司必然有一個優秀的團隊,一個優秀的團隊必然要有一個好的規範來
約束和執行。國內基本各大互聯網公司的前端都有自己的開發規範,但總的宗旨基本都是:代碼簡、易維護、性能高。對於一個大型項目經常會多人協作,這時必須
要有一個好的規範才能順利便捷地進行下去。
符合web標準, 語義化html, 結構表現行為分離, 兼容性優良. 頁面性能方面, 代碼要求簡潔明了有序, 儘可能的減小伺服器負載, 保證最快的解析速度.html書寫規範
1. 文檔類型聲明及編碼: 統一為html5聲明類型&; 編碼統一為&, 書寫時利用IDE實現層次分明的縮進;
2. 非特殊情況下樣式文件必須外鏈至&…&之間;非特殊情況下JavaScript文件必須外鏈至頁面底部;
3. 引入樣式文件或JavaScript文件時, 須略去默認類型聲明, 寫法如下:
&
&
&
4. 引入JS庫文件, 文件名須包含庫名稱及版本號及是否為壓縮版, 比如jquery-1.4.1.min.js; 引入插件, 文件名格式為庫名稱+插件名稱, 比如jQuery.cookie.js;
5. 所有編碼均遵循xhtml標準, 標籤 屬性 屬性命名 必須由小寫字母及下劃線數字組成, 且所有標籤必須閉合, 包括 br (&
), hr(&
)等; 屬性值必須用雙引號包括;
6. 充分利用無兼容性問題的html自身標籤, 比如span, em, strong, optgroup, label,等等;
需要為html元素添加自定義屬性的時候, 首先要考慮下有沒有默認的已有的合適標籤去設置, 如果沒有,
可以使用須以」data-」為前綴來添加自定義屬性,避免使用」data:」等其他命名方式;
7. 語義化html, 如 標題根據重要性用h*(同一頁面只能有一個h1), 段落標記用p, 列表用ul, 內聯元素中不可嵌套塊級元素;
8. 儘可能減少div嵌套, 如&&歡迎訪問XXX,
您的用戶名是&
&&
歡迎訪問XXX,
您的用戶名是&用戶名&&
9. 書寫鏈接地址時, 必須避免重定向,例如:href=」http://itaolun.com/」, 即須在URL地址後面加上「/」;
10. 在頁面中盡量避免使用style屬性,即style=」…」;
11. 必須為含有描述性表單元素(input, textarea)添加label, 如&姓名: &&
須寫成:&&&&
12. 能以背景形式呈現的圖片, 盡量寫入css樣式中;
13. 重要圖片必須加上alt屬性; 給重要的元素和截斷的元素加上title;
14. 給區塊代碼及重要功能(比如循環)加上注釋, 方便後台添加功能;
15. 特殊符號使用: 儘可能使用代碼替代: 比如 &<(&<) &>(>) 空格( ) ?(?) 等等;
16. 書寫頁面過程中, 請考慮向後擴展性;
17. class id 參見 css書寫規範.
css書寫規範
1. 編碼統一為utf-8;
2. 協作開發及分工: i會根據各個模塊, 同時根據頁面相似程序, 事先寫好大體框架文件,
分配給前端人員實現內部結構表現行為; 共用css文件base.css由i書寫, 協作開發過程中, 每個頁面請務必都要引入,
此文件包含reset及頭部底部樣式, 此文件不可隨意修改;
3. class與id的使用: id是唯一的並是父級的, class是可以重複的並是子級的, 所以id僅使用在大的模塊上, class可用在重複使用率高及子級中; id原則上都是由分發框架文件時命名的(如#header #footer #content #nav 等), 為JavaScript預留鉤子的除外;
4. 為JavaScript預留鉤子的命名, 請以 js_ 起始, 比如: js_hide, js_show(淘寶是用的J_開頭);
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中已建好框架的頁面代碼&&
按a命名法則: &&…&