"HTML編碼規範" 筆記
阿新 • • 發佈:2018-12-28
轉自學習網站(百度原創):https://github.com/ecomfe/spec/blob/master/html-style-guide.md
本文是百度培訓網站上關於HTML編碼規範的筆記,非博主原創。
前言
HTML 作為描述網頁結構的超文字標記語言,在百度一直有著廣泛的應用。本文件的目標是使 HTML 程式碼風格保持一致,容易被理解和被維護。
程式碼風格
縮排與換行
- [強制] 使用
4
個空格做為一個縮排層級,不允許使用2
個空格 或tab
字元。 - [建議] 每行不得超過
120
個字元 - [強制]
class
-
分隔。 - [強制]
class
必須代表相應模組或部件的內容或功能,不得以樣式資訊進行命名。 - [強制] 元素
id
必須保證頁面唯一。 - [建議]
id
建議單詞全字母小寫,單詞間以-
分隔。同項目必須保持風格一致。 - [建議]
id
、class
命名,在避免衝突並描述清楚的前提下儘可能短。 - [強制] 禁止為了
hook 指令碼
,建立無樣式資訊的class。
- [強制] 同一頁面,應避免使用相同的
name
id。
標籤
- [強制] 標籤名必須使用小寫字母。
- [強制] 對於無需自閉合的標籤,不允許自閉合。
- [強制] 對
HTML5
中規定允許省略的閉合標籤,不允許省略閉合標籤。 - [強制] 標籤使用必須符合標籤巢狀規則。
- [建議] HTML 標籤的使用應該遵循標籤的語義。
- [建議] 在 CSS 可以實現相同需求的情況下不得使用表格進行佈局。
- [建議] 標籤的使用應儘量簡潔,減少不必要的標籤。
屬性
- [強制] 屬性名必須使用小寫字母。
- [強制] 屬性值必須用雙引號包圍。
- [建議] 布林型別的屬性,建議不新增屬性值。
- [建議] 自定義屬性建議以
xxx-
為字首,推薦使用data-
。
通用
DOCTYPE
- [強制] 使用
HTML5
的doctype
來啟用標準模式,建議使用大寫的DOCTYPE
。 - [建議] 啟用 IE Edge 模式。
- [建議] 在
html
標籤上設定正確的lang
屬性。
編碼
- [強制] 頁面必須使用精簡形式,明確指定字元編碼。指定字元編碼的
meta
必須是head
的第一個直接子元素。 - [建議]
HTML
檔案使用無BOM
的UTF-8
編碼。
CSS 和 JavaScript 引入
- [強制] 引入
CSS
時必須指明rel="stylesheet"
。 - [建議] 引入
CSS
和JavaScript
時無須指明type
屬性。 - [建議] 在
head
中引入頁面需要的所有CSS
資源。 - [建議]
JavaScript
應當放在頁面末尾,或採用非同步載入。 - [建議] 移動環境或只針對現代瀏覽器設計的 Web 應用,如果引用外部資源的
URL
協議部分與頁面相同,建議省略協議字首。
head
title
- [強制] 頁面必須包含
title
標籤宣告標題。 - [強制]
title
必須作為head
的直接子元素,並緊隨charset
宣告之後。
favicon
- [強制] 保證
favicon
可訪問。
viewport
- [建議] 若頁面欲對移動裝置友好,需指定頁面的
viewport
。
圖片
- [強制] 禁止
img
的src
取值為空。延遲載入的圖片也要增加預設的src
。 - [建議] 避免為
img
新增不必要的title
屬性。 - [建議] 為重要圖片新增
alt
屬性。 - [建議] 新增
width
和height
屬性,以避免頁面抖動。 - [建議] 有下載需求的圖片採用
img
標籤實現,無下載需求的圖片採用 CSS 背景圖實現。
表單
控制元件標題
- [強制] 有文字標題的控制元件必須使用
label
標籤將其與其標題相關聯。
按鈕
- [強制] 使用
button
元素時必須指明type
屬性值。 - [建議] 儘量不要使用按鈕類元素的
name
屬性。
可訪問性 (A11Y)
- [建議] 負責主要功能的按鈕在 DOM 中的順序應靠前。
- [建議] 當使用 JavaScript 進行表單提交時,如果條件允許,應使原生提交功能正常工作。
- [建議] 在針對移動裝置開發的頁面時,根據內容型別指定輸入框的
type
屬性。
多媒體
- [建議] 當在現代瀏覽器中使用
audio
以及video
標籤來播放音訊、視訊時,應當注意格式。 - [建議] 在支援
HTML5
的瀏覽器中優先使用audio
和video
標籤來定義音視訊元素。 - [建議] 使用退化到外掛的方式來對多瀏覽器進行支援。
- [建議] 只在必要的時候開啟音視訊的自動播放。
- [建議] 在
object
標籤內部提供指示瀏覽器不支援該標籤的說明。
模板中的 HTML
- [建議] 模板程式碼的縮排優先保證 HTML 程式碼的縮排規則。
- [建議] 模板程式碼應以保證 HTML 單個標籤語法的正確性為基本原則。
- [建議] 在迴圈處理模板資料構造表格時,若要求每行輸出固定的個數,建議先將資料分組,之後再迴圈輸出。