"HTML編碼規范" 筆記
轉自學習網站(百度原創):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 單個標簽語法的正確性為基本原則。
- [建議] 在循環處理模板數據構造表格時,若要求每行輸出固定的個數,建議先將數據分組,之后再循環輸出。
浙公網安備 33010602011771號