新建一個html頁 必需要有的標籤javascript
<!DOCTYPE html>css
<html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <title>Page title</title> <link rel="stylesheet" href="code-guide.css"> <style></style> <script src="code-guide.js"></script> </head> <body> </body> </html>html
文章轉至java
HTML語法web
用兩個空格來代替製表符(tab) -- 這是惟一能保證在全部環境下得到一致展示的方法。瀏覽器
對於屬性的定義,確保所有使用雙引號,毫不要使用單引號。編輯器
不要省略可選的結束標籤(closing tag)(例如,</li> 或 </body>)。ide
HTML5 doctype工具
爲每一個 HTML 頁面的第一行添加標準模式(standard mode)的聲明,這樣可以確保在每一個瀏覽器中擁有一致的展示。性能
<!DOCTYPE html>
語言屬性
強烈建議爲 html 根元素指定 lang 屬性,從而爲文檔設置正確的語言。這將有助於語音合成工具肯定其所應該採用的發音,有助於翻譯工具肯定其翻譯時所應遵照的規則等等。
<html lang="zh-CN">
E 兼容模式
IE 支持經過特定的 <meta> 標籤來肯定繪製當前頁面所應該採用的 IE 版本。除非有強烈的特殊需求,不然最好是設置爲 edge mode,從而通知 IE 採用其所支持的最新的模式。
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
字符編碼
經過明確聲明字符編碼,可以確保瀏覽器快速並容易的判斷頁面內容的渲染方式。這樣作的好處是,能夠避免在 HTML 中使用字符實體標記(character entity),從而所有與文檔編碼一致(通常採用 UTF-8 編碼)。
<meta charset="UTF-8">
引入 CSS 和 JavaScript 文件
根據 HTML5 規範,在引入 CSS 和 JavaScript 文件時通常不須要指定 type 屬性,由於text/css 和 text/javascript 分別是它們的默認值。
<link rel="stylesheet" href="code-guide.css">
<style>/* ... */</style>
<script src="code-guide.js"></script>
實用爲王
儘可能遵循 HTML 標準和語義,可是不要以犧牲實用性爲代價。任什麼時候候都要儘可能使用最少的標籤並保持最小的複雜度。
布爾(boolean)型屬性
布爾型屬性能夠在聲明時不賦值。XHTML 規範要求爲其賦值,可是 HTML5 規範不須要。
更多信息請參考 WhatWG section on boolean attributes:
元素的布爾型屬性若是有值,就是 true,若是沒有值,就是 false。
<input type="text" disabled><input type="checkbox" value="1" checked><select> <option value="1" selected>1</option></select>
JavaScript 生成的標籤
經過 JavaScript 生成的標籤讓內容變得不易查找、編輯,而且下降性能。能避免時儘可能避免。
CSS語法
對於屬性值或顏色參數,省略小於 1 的小數前面的 0 (例如,.5 代替 0.5;-.5px 代替-0.5px)。
十六進制值應該所有小寫,例如,#fff。在掃描文檔時,小寫字符易於分辨,由於他們的形式更易於區分。
儘可能使用簡寫形式的十六進制值,例如,用 #fff 代替 #ffffff。
爲選擇器中的屬性添加雙引號,例如,input[type="text"]。只有在某些狀況下是可選的,可是,爲了代碼的一致性,建議都加上雙引號。
避免爲 0 值指定單位,例如,用 margin: 0; 代替 margin: 0px;。
不要使用 @import
與 <link> 標籤相比,@import 指令要慢不少,不光增長了額外的請求次數,還會致使不可預料的問題。替代辦法有如下幾種:
媒體查詢(Media query)的位置
將媒體查詢放在儘量相關規則的附近。不要將他們打包放在一個單同樣式文件中或者放在文檔底部。若是你把他們分開了,未來只會被你們遺忘。下面給出一個典型的實例。
.element { ... }.element-avatar { ... }.element-selected { ... }@media (min-width: 480px) { .element { ...} .element-avatar { ... } .element-selected { ... }}
帶前綴的屬性
當使用特定廠商的帶有前綴的屬性時,經過縮進的方式,讓每一個屬性的值在垂直方向對齊,這樣便於多行編輯。
.selector { -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.15); box-shadow: 0 1px 2px rgba(0,0,0,.15);}
單行規則聲明
對於只包含一條聲明的樣式,爲了易讀性和便於快速編輯,建議將語句放在同一行。對於帶有多條聲明的樣式,仍是應當將聲明分爲多行。
.span1 { width: 60px; } .span2 { width: 140px; } .span3 { width: 220px; } /* Multiple declarations, one per line */ .sprite { display: inline-block; width: 16px; height: 15px; background-image: url(../img/sprite.png); } .icon { background-position: 0 0; } .icon-home { background-position: 0 -20px; } .icon-account { background-position: 0 -40px; }
簡寫形式的屬性聲明
在須要顯示地設置全部值的狀況下,應當儘可能限制使用簡寫形式的屬性聲明。常見的濫用簡寫屬性聲明的狀況以下:
大部分狀況下,咱們不須要爲簡寫形式的屬性聲明指定全部值。例如,HTML 的 heading 元素只須要設置上、下邊距(margin)的值,所以,在必要的時候,只需覆蓋這兩個值就能夠。過分使用簡寫形式的屬性聲明會致使代碼混亂,而且會對屬性值帶來沒必要要的覆蓋從而引發意外的反作用。
/* Bad example / .element { margin: 0 0 10px; background: red; background: url("image.jpg"); border-radius: 3px 3px 0 0; } / Good example */ .element { margin-bottom: 10px; background-color: red; background-image: url("image.jpg"); border-top-left-radius: 3px; border-top-right-radius: 3px; }
class 命名
class 名稱中只能出現小寫字符和破折號(dashe)(不是下劃線,也不是駝峯命名法)。破折號應當用於相關 class 的命名(相似於命名空間)(例如,.btn 和 .btn-danger)。
避免過分任意的簡寫。.btn 表明 button,可是 .s 不能表達任何意思。
class 名稱應當儘量短,而且意義明確。
使用 .js-* class 來標識行爲(與樣式相對),而且不要將這些 class 包含到 CSS 文件中。
選擇器
對於通用元素使用 class ,這樣利於渲染性能的優化。
對於常常出現的組件,避免使用屬性選擇器(例如,[class^="..."])。瀏覽器的性能會受到這些因素的影響。
選擇器要儘量短,而且儘可能限制組成選擇器的元素個數,建議不要超過 3 。
編輯器配置
將你的編輯器按照下面的配置進行設置,以免常見的代碼不一致和差別:
用兩個空格代替製表符(soft-tab 即用空格表明 tab 符)。
保存文件時,刪除尾部的空白符。
設置文件編碼爲 UTF-8。
在文件結尾添加一個空白行。