HTML 用兩個空格來代替製表符(tab) -- 這是唯一能保證在所有環境下獲得一致展現的方法。 嵌套元素應當縮進一次(即兩個空格) 對於屬性的定義,確保全部使用雙引號,絕不要使用單引號。 不要在自閉合(self-closing)元素的尾部添加斜線 -- HTML5 規範中明確說明這是可選的。 不要
HTML
- 用兩個空格來代替製表符(tab) -- 這是唯一能保證在所有環境下獲得一致展現的方法。
- 嵌套元素應當縮進一次(即兩個空格)
- 對於屬性的定義,確保全部使用雙引號,絕不要使用單引號。
- 不要在自閉合(self-closing)元素的尾部添加斜線 -- HTML5 規範中明確說明這是可選的。
- 不要省略可選的結束標簽(closing tag)(例如,
</li>
或</body>
)。 - <html lang="zh-CN">強烈建議為 html 根元素指定 lang 屬性,從而為文檔設置正確的語言。這將有助於語音合成工具確定其所應該採用的發音,有助於翻譯工具確定其翻譯時所應遵守的規則等等。
- <meta charset="UTF-8">通過明確聲明字元編碼,能夠確保瀏覽器快速並容易的判斷頁面內容的渲染方式。
- <meta http-equiv="X-UA-Compatible" content="IE=Edge">IE 支持通過特定的
<meta>
標簽來確定繪製當前頁面所應該採用的 IE 版本。除非有強烈的特殊需求,否則最好是設置為 edge mode,從而通知 IE 採用其所支持的最新的模式。 - 根據 HTML5 規範,在引入 CSS 和 JavaScript 文件時一般不需要指定
type
屬性,因為text/css
和text/javascript
分別是它們的預設值。<!-- 引用 CSS --> <link rel="stylesheet" href="code-guide.css"> <!-- 內聯樣式--> <style> /* ... */ </style> <!-- JavaScript --> <script src="code-guide.js"></script>
- HTML 屬性應當按照以下給出的順序依次排列,確保代碼的易讀性。class 用於標識高度可復用組件,因此應該排在首位。id 用於標識具體組件,應當謹慎使用(例如,頁面內的書簽),因此排在第二位
- class
- id,name
- data-*
- src,for,type,href
- title,alt
- aria-*,role
CSS
- 用兩個空格來代替製表符(tab) -- 這是唯一能保證在所有環境下獲得一致展現的方法。
- 為選擇器分組時,將單獨的選擇器單獨放在一行。
- 為了代碼的易讀性,在每個聲明塊的左花括弧前添加一個空格。
- 聲明塊的右花括弧應當單獨成行。
- 每條聲明語句的
:
後應該插入一個空格。 - 為了獲得更準確的錯誤報告,每條聲明都應該獨占一行。
- 所有聲明語句都應當以分號結尾。最後一條聲明語句後面的分號是可選的,但是,如果省略這個分號,你的代碼可能更易出錯。
- 對於以逗號分隔的屬性值,每個逗號後面都應該插入一個空格(例如,
box-shadow
)。 - 不要在
rgb()
、rgba()
、hsl()
、hsla()
或rect()
值的內部的逗號後面插入空格。這樣利於從多個屬性值(既加逗號也加空格)中區分多個顏色值(只加逗號,不加空格)。 - 對於屬性值或顏色參數,省略小於 1 的小數前面的 0 (例如,
.5
代替0.5
;-.5px
代替-0.5px
)。 - 十六進位值應該全部小寫,例如,
#fff
。在掃描文檔時,小寫字元易於分辨,因為他們的形式更易於區分。 - 儘量使用簡寫形式的十六進位值,例如,用
#fff
代替#ffffff
。 - 為選擇器中的屬性添加雙引號,例如,
input[type="text"]
。只有在某些情況下是可選的,但是,為了代碼的一致性,建議都加上雙引號。 - 避免為 0 值指定單位,例如,用
margin: 0;
代替margin: 0px;
。/* 不符合規範的 CSS */ .selector, .selector-secondary, .selector[type=text] { padding:15px; margin:0px 0px 15px; background-color:rgba(0, 0, 0, 0.5); box-shadow:0px 1px 2px #CCC,inset 0 1px 0 #FFFFFF } /* 符合規範的 CSS */ .selector, .selector-secondary, .selector[type="text"] { padding: 15px; margin-bottom: 15px; background-color: rgba(0,0,0,.5); box-shadow: 0 1px 2px #ccc, inset 0 1px 0 #fff; }
- 相關的屬性聲明應當歸為一組,並按照下麵的順序排列:
由於定位(positioning)可以從正常的文檔流中移除元素,並且還能覆蓋盒模型(box model)相關的樣式,因此排在首位。盒模型排在第二位,因為它決定了組件的尺寸和位置。
其他屬性只是影響組件的內部(inside)或者是不影響前兩組屬性,因此排在後面。
- 定位
- 盒模型
- 排版
- 邊框與背景
- 透明度
- 示例:
.declaration-order { /* 定位*/ position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 100; /* 盒模型 */ display: block; float: right; width: 100px; height: 100px; /* 排版*/ font: normal 13px "Helvetica Neue", sans-serif; line-height: 1.5; color: #333; text-align: center; /* 邊框與背景*/ background-color: #f5f5f5; border: 1px solid #e5e5e5; border-radius: 3px; /* 透明度*/ opacity: 1; }
見仁見智吧,所謂規範就是大家一起約定怎麼寫代碼。
話說這些都是網上拿來的,就自己看了一遍。不知道要不要聲明轉載,有些還是轉載的轉載,嫌麻煩,反正都是些基礎的東西,就算了吧。