HTML規範

  1. 標籤

儘量遵循HTML標準和語義,但不要以失去實用性爲代價

  • 自閉合標籤,無需閉合(img, input, br, hr);
  • 可選閉合標籤,需要閉合(</li>, </body>);
  • 儘量減少標籤的數量;
  1. class與id的使用
  • class應以功能或者內容命名,不以表現形式命名;
  • class與id單詞字母小寫,多個單詞組合時,採用中劃線-分割;
  • 使用唯一的id作爲JavaScript hook;
  • 避免創建無樣式信息的class;
  <!-- 錯誤示範 -->
  <div class="j-hook left contentWraaper"></div>
  <!-- 正確示範 -->
  <div id="j-hook" class="content-wrapper"></div>
  1. 屬性的順序

屬性應當按照一定的順序出現,來保證易讀性。順序如下:

  • id
  • class
  • name
  • data-xxx
  • src, for, type, ref
  • title, alt
  • aria-xxx, role
  1. 單雙引號

屬性的定義,統一使用雙引號。示範如下

<!-- 正確示範 -->
<div id="detail" class="red content-wrapper"></div>
  1. 嵌套規則

語義嵌套:瀏覽器會做容錯處理,生成的文檔樹可能互相不太一樣;

嚴格嵌套約束:在所有的瀏覽器都都不被允許;

  1. 語義嵌套約束

    • <li>用於<ul>或者<ol>下
    • <dt><dd>用於<dl>下
    • <thead><tbody><tbody><tr><td>放在<table>下
  2. 嚴格嵌套約束

    • 行內元素下只能包含文本和行內元素
    • <a>標籤裏不可以嵌套交互元素,如<a>,<button>,<select>
  3. 布爾值屬性

在HTML中,disabled, selected, checked等屬性不用設置值

<input type="text" disabled>
<input type="checkbox" value="1" checked>
<select>
    <option value="1" selected>1</option>
</select>   
  1. 語義化
  • 通常情況下,每個標籤都是有語義的,所謂語義就是有各自的功能和含義;
  • 語義化的HTML結構,有助於機器(搜索引擎)理解;
  • 多人協作時,能夠快速理解別的開發者的用途;
  1. 腳本引用寫在 body 結束標籤之前;

  2. 儘量保證結構、表現、行爲三者分離,並儘量使三者之間沒有太多的交互和聯繫。儘量在文檔和模板中只包含結構性的 HTML;而將所有表現代碼,移入樣式表中;將所有動作行爲,JS腳本之中。

  3. 儘量不使用行內樣式;

  4. 在每一個塊狀元素,列表元素和表格元素後,加上一新空白行,並對其子孫元素進行縮進。內聯元素寫在一行內,塊狀元素還有列表和表格要另起一行。

  5. 任何時候都要儘量使用最少的標籤並保持最小的複雜度,儘量避免多餘的父元素。

  6. 儘量避免通過 JavaScript 生成的標籤,它讓內容變得不易查找、編輯,並且降低性能。

  7. 重要圖片一定要加上alt屬性; 給重要的元素和截斷的元素加上title;

  8. 標籤和含義

    標籤 含義
    <p> 段落
    <h1>--<h6> 標題
    <ul> 無序列表
    <ol> 有序列表
    <blockquote> 大段引用
    <cite> 一般小引用
    <b> 爲樣式加粗
    <strong> 爲了強調而加粗
    <i> 爲樣式傾斜
    <em> 爲強調內容而傾斜
    <code> 代碼標識
    <abbr> 縮寫
  9. 文檔類型

HTML的第一行要加一個標準模式的聲明,這樣確保了瀏覽器有一致的表現形式

<!DOCTYPE html>
  1. 語言
<!-- 中文 -->
<html lang="zh-Hans">

<!-- 簡體中文 -->
<html lang="zh-cmn-Hans">

<!-- 繁體中文 -->
<html lang="zh-cmn-Hant">

<!-- English -->
<html lang="en">
  1. 字符編碼
  • 應以無BOM的utf-8編碼作爲文件格式
  • <meta charset="utf-8">必須作爲<head>的第一個直接子元素
  1. IE模式兼容
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  1. SEO優化
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <!-- SEO -->
    <title>Style Guide</title>
    <meta name="keywords" content="your keywords">
    <meta name="description" content="your description">
    <meta name="author" content="author,email address">
</head>
  1. viewport
  • viewport:指瀏覽器窗口內容區的大小,不包括工具條,選項卡等;
  • width:瀏覽器寬度,輸出設備中可見區域寬度;
  • device-width:設備分辨率寬度,輸出設備的屏幕可見寬度;
  • initial-scale:初始縮放比例;
  • maximum-scale:最大縮放比例;
<meta name="viewport" content="width=device-width, initial-scale=1.0">
  1. favicon

在未指定 favicon 時,大多數瀏覽器會請求 Web Server 根目錄下的 favicon.ico。爲了保證 favicon 可訪問,避免 404,必須遵循以下兩種方法之一:

  • 在 Web Server 根目錄放置 favicon.ico 文件;
  • 使用 link 指定 favicon;
<link rel="shortcut icon" href="path/to/favicon.ico">
  1. 綜上,head部分應當這樣寫:
<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Style Guide</title>
    <meta name="description" content="不超過150個字符">
    <meta name="keywords" content="">
    <meta name="author" content="name, [email protected]">

    <!-- 爲移動設備添加 viewport -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <!-- iOS 圖標 -->
    <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-57x57-precomposed.png">

    <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml" />
    <link rel="shortcut icon" href="path/to/favicon.ico">
</head>

!!! 以上規則僅供參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章