1. 程式人生 > >"HTML編碼規範" 筆記

"HTML編碼規範" 筆記

轉自學習網站(百度原創):https://github.com/ecomfe/spec/blob/master/html-style-guide.md

本文是百度培訓網站上關於HTML編碼規範的筆記,非博主原創。

前言

HTML 作為描述網頁結構的超文字標記語言,在百度一直有著廣泛的應用。本文件的目標是使 HTML 程式碼風格保持一致,容易被理解和被維護。

程式碼風格

縮排與換行

  1. [強制] 使用 4 個空格做為一個縮排層級,不允許使用 2 個空格 或 tab 字元。
  2. [建議] 每行不得超過 120 個字元
  3. [強制] class
     必須單詞全字母小寫,單詞間以 - 分隔。
  4. [強制] class 必須代表相應模組或部件的內容或功能,不得以樣式資訊進行命名。
  5. [強制] 元素 id 必須保證頁面唯一。
  6. [建議] id 建議單詞全字母小寫,單詞間以 - 分隔。同項目必須保持風格一致。
  7. [建議] idclass 命名,在避免衝突並描述清楚的前提下儘可能短。
  8. [強制] 禁止為了 hook 指令碼,建立無樣式資訊的 class。
  9. [強制] 同一頁面,應避免使用相同的 name
     與 id。

標籤

  1. [強制] 標籤名必須使用小寫字母。
  2. [強制] 對於無需自閉合的標籤,不允許自閉合。
  3. [強制] 對 HTML5 中規定允許省略的閉合標籤,不允許省略閉合標籤。
  4. [強制] 標籤使用必須符合標籤巢狀規則。
  5. [建議] HTML 標籤的使用應該遵循標籤的語義。
  6. [建議] 在 CSS 可以實現相同需求的情況下不得使用表格進行佈局。
  7. [建議] 標籤的使用應儘量簡潔,減少不必要的標籤。

屬性

  1. [強制] 屬性名必須使用小寫字母。
  2. [強制] 屬性值必須用雙引號包圍。
  3. [建議] 布林型別的屬性,建議不新增屬性值。
  4. [建議] 自定義屬性建議以 xxx- 為字首,推薦使用 data-

通用

DOCTYPE

  1. [強制] 使用 HTML5 的 doctype 來啟用標準模式,建議使用大寫的 DOCTYPE
  2. [建議] 啟用 IE Edge 模式。
  3. [建議] 在 html 標籤上設定正確的 lang 屬性。

 編碼

  1. [強制] 頁面必須使用精簡形式,明確指定字元編碼。指定字元編碼的 meta 必須是 head 的第一個直接子元素。
  2. [建議] HTML 檔案使用無 BOM 的 UTF-8 編碼。

 CSS 和 JavaScript 引入

  1. [強制] 引入 CSS 時必須指明 rel="stylesheet"
  2. [建議] 引入 CSS 和 JavaScript 時無須指明 type 屬性。
  3. [建議] 在 head 中引入頁面需要的所有 CSS 資源。
  4. [建議] JavaScript 應當放在頁面末尾,或採用非同步載入。
  5. [建議] 移動環境或只針對現代瀏覽器設計的 Web 應用,如果引用外部資源的 URL 協議部分與頁面相同,建議省略協議字首。

head

title

  1. [強制] 頁面必須包含 title 標籤宣告標題。
  2. [強制] title 必須作為 head 的直接子元素,並緊隨 charset 宣告之後。

favicon

  1. [強制] 保證 favicon 可訪問。

viewport

  1. [建議] 若頁面欲對移動裝置友好,需指定頁面的 viewport

圖片

  1. [強制] 禁止 img 的 src 取值為空。延遲載入的圖片也要增加預設的 src
  2. [建議] 避免為 img 新增不必要的 title 屬性。
  3. [建議] 為重要圖片新增 alt 屬性。
  4. [建議] 新增 width 和 height 屬性,以避免頁面抖動。
  5. [建議] 有下載需求的圖片採用 img 標籤實現,無下載需求的圖片採用 CSS 背景圖實現。

表單

控制元件標題

  1. [強制] 有文字標題的控制元件必須使用 label 標籤將其與其標題相關聯。

 按鈕

  1. [強制] 使用 button 元素時必須指明 type 屬性值。
  2. [建議] 儘量不要使用按鈕類元素的 name 屬性。

可訪問性 (A11Y)

  1. [建議] 負責主要功能的按鈕在 DOM 中的順序應靠前。
  2. [建議] 當使用 JavaScript 進行表單提交時,如果條件允許,應使原生提交功能正常工作。
  3. [建議] 在針對移動裝置開發的頁面時,根據內容型別指定輸入框的 type 屬性。

多媒體

  1. [建議] 當在現代瀏覽器中使用 audio 以及 video 標籤來播放音訊、視訊時,應當注意格式。
  2. [建議] 在支援 HTML5 的瀏覽器中優先使用 audio 和 video 標籤來定義音視訊元素。
  3. [建議] 使用退化到外掛的方式來對多瀏覽器進行支援。
  4. [建議] 只在必要的時候開啟音視訊的自動播放。
  5. [建議] 在 object 標籤內部提供指示瀏覽器不支援該標籤的說明。

模板中的 HTML

  1. [建議] 模板程式碼的縮排優先保證 HTML 程式碼的縮排規則。
  2. [建議] 模板程式碼應以保證 HTML 單個標籤語法的正確性為基本原則。
  3. [建議] 在迴圈處理模板資料構造表格時,若要求每行輸出固定的個數,建議先將資料分組,之後再迴圈輸出。