前端開發規範之html編碼規範,前端規範html編碼

來源:互聯網
上載者:User

前端開發規範之html編碼規範,前端規範html編碼
前端開發whqet,csdn,王海慶,whqet,前端開發專家

前端開發規範系列文章之html編碼規範,感興趣的同學請關注《前端開發規範》專欄。隨著html5的逐漸深入人心,html5和xhtml截然相反的態度,造成了前端開發人員的困惑,如何保持html代碼的相容性、簡潔性、未來適用性,稱為今天我們這篇文章的主要目的。參考一系列的html開發規範(mdo、github、doyoe、globant、LFeh等),從諸多規範中尋求共同點,試圖尋找最佳解決方案。

------------------------------------------------------------

--我參加了部落格之星評選,如果你喜歡我的部落格,求投票,您的支援是我的動力之源,走起!

-----------------------------------------------------------------------------------------

原則

1.規範 。保證您的代碼規範,趨html5,遠xhtml,保證結構表現行為相互分離。

2.簡潔。保證代碼的最簡化,避免多餘的空格、空行,保持代碼的語義化,盡量使用具有語義的元素,避免使用樣式屬性和行為屬性。任何時候都要用盡量簡單、盡量少的元素解決問題。

3.實用。遵循標準,但是不能以犧牲實用性為代價。

4.忠誠。選擇一套規範,然後始終遵循。不管代碼由多少人蔘與,都應該看起來像一個人寫的一樣。

文法

1.小寫。html標籤、html屬性全部小寫。

2.嵌套。所有元素必須正確嵌套。

3.閉合。雙標籤必須閉合,單標籤(自關閉標籤)不閉合。

<!--bad--><br/><hr/><!--good--><br><hr>
注釋

1.詳盡注釋。解釋代碼解決問題、解決思路、是否為新鮮方案等。

2.模組注釋。github建議不使用模組結束注釋。

<!-- 新聞列表模組 --><div class="news">...<!-- /新聞列表模組 --><!-- 有不少規範建議不使用結束模組的注釋,因為這樣太醜了,又加重檔案負荷。 -->

3.待辦注釋。

<!-- TODO:待辦事項 -->...
文檔

1.文件類型使用html5標準文件類型,文件類型聲明之前,不允許出現任何非Null 字元。不允許添加<meta>強制改變文檔模式。

2.html元素上指定lang屬性。顯示頁面語言,有助於語言合成工具來確定怎樣發音,以及翻譯工具決定使用的規則,等等。

3.指定明確的字元編碼。讓瀏覽器輕鬆、快速的確定適合網頁內容的渲染方式。

4.IE相容模式。Internet Explorer 支援使用相容性 <meta> 標籤來指定使用什麼版本的 IE 來渲染頁面。如果不是特殊需要,通常通過 edge mode 來通知 IE 使用最新的相容模式。

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

5.head部分的順序:a.<meta>元素,b. 需要的js檔案(eg. Moddernizr or HTML5 Shiv),c. <title>元素,d.樣式表。

6.可以使用IE條件注釋的方式相容IE,但是不要添加額外的樣式表。

<!--bad--><!--[if IE8]><link rel="stylesheet" href="/Assets/styles/IE8.css" ><![endif]--><!--[if IE7]><link rel="stylesheet" href="/Assets/styles/IE7.css" ><![endif]--><!--good--><!--[if IE8]><html class="ie8" lang="zh-cn"><![endif]--><!--[if IE7]><html class="ie7" lang="zh-cn"><![endif]-->
屬性

1.雙引號屬性值,不要使用單引號。

2.省略type屬性。使用style、link、script,不用指定type屬性,因為 text/css 和 text/javascript 分別是他們的預設值。

3.省略Boolean屬性值。Boolean屬性不用添加取值,disabled,checked,selected等。

4.省略url類屬性資源協議頭。

5.屬性順序。html屬性應該按照特定的順序出現以保證易讀性。class->id,name->data-*->src,for,type,href->title,alt->aria-*,role。

6.多媒體元素添加替代屬性。映像增加alt屬性,音視頻增加替代文字。

7.不手動設定tabindex屬性,讓瀏覽器自動化佈建。

元素

1.避免冗餘標籤。

2.避免JS產生標籤。

3.段落文字應該用<p>,避免使用<br>。

4.清單項目放<ul>、<ol>、<dl>,不要使用一系列的<div>或<p>

5.<input>使用for屬性綁定<label>。

6.使用<label>標籤包裹radio或checkbox和他們的文字,不用再使用for屬性。

7.使用單選、複選替代下拉式功能表。(radio or checkbox instead of select menu)

8.form button應制定type類型,使用type="submit"、type="reset"或type="button"。

9.首要的表單按鈕首先出現(在DOM中),尤其是適用多個提交按鈕的場合。視圖中顯示的順序可以利用css修改。

10.有效使用<thead>、<tfoot>、<tbody>、<th>(scope屬性)。可以把<tfoot>放<tbody>前提高載入速度。

<table summary="This is a chart of invoices for 2011.">  <thead>    <tr>      <th scope="col">Table header 1</th>      <th scope="col">Table header 2</th>    </tr>  </thead>  <tfoot>    <tr>      <td>Table footer 1</td>      <td>Table footer 2</td>    </tr>  </tfoot>  <tbody>    <tr>      <td>Table data 1</td>      <td>Table data 2</td>    </tr>  </tbody></table>
格式

1.soft tab。

2.嵌套縮排。

3.刪除行尾空格。

4.塊元素、列表元素、表格元素都放在新行。

5.inline元素視情況換行。

6.努力保持每行長度小於80列,如果太長可換行。

<!--bad--><img class="block_element" id="unicorn" src="http://cl.ly/image/1a1u013e002z" alt="unicorn, rainbows, poop and stuff" width="500" height="400" /><!--good--><img   class="block_element"   id="unicorn"   src="http://cl.ly/image/1a1u013e002z"   alt="unicorn, rainbows, poop and stuff"   width="500"  height="400">

感謝您耐心讀完,如果對您有協助,請支援我!

----------------------------------------------------------

前端開發whqet,關注web前端開發,分享相關資源,歡迎點贊,歡迎拍磚。
---------------------------------------------------------------------------------------------------------

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.