CSS開發規範


前端之CSS開發規範

1. tab鍵用四個空格代替
  因爲在不同系統的編輯工具對tab解析不一樣,windows下的tab鍵是佔四個空格的位置,而在linux下會變成佔八個空格的位置(除非你自己設定了tab鍵所佔的位置長度)。
  一些童鞋可能會有疑問,tab鍵換成四個空格,多麻煩啊~
  其實不然,我平時用sublime text比較多,在這個工具中可以對tab鍵進行設置。
  選擇Indent Using Spaces,Tab Width:4兩項即可。

2. 每個樣式屬性後加 ";"
方便壓縮工具"斷句"。

3. Class命名中出現大寫字母,採用” - “對class中的字母分隔,如:
/* 正確的寫法 */
.hotel-title {
font-weight: bold;
} /* 不推薦的寫法 */
.hotelTitle {
font-weight: bold;
}
用"-"隔開比使用駝峯是更加清晰。
產品線-產品-模塊-子模塊,命名的時候也可以使用這種方式(@Artwl)

4. 空格的使用,以下規則執行:
.hotel-content {
font-weight: bold;
}

5.多選擇器規則之間換行
當樣式針對多個選擇器時每個選擇器佔一行
/* 推薦的寫法 */
a.btn,
input.btn,
input[type="button"] {
...... }

6. 將樣式寫爲單行, 如
.hotel-content {margin: 10px; background-color: #efefef;}
單行顯示不好註釋,不好備註,這應該是壓縮工具的活兒~

7. 向 後添加單位, 如:
.obj {
left: 0px;
}
只是爲了統一。記住,綠色字表強調,不表強制!

8. 使用css原生import
使用css原生import有很多弊端,比如會增加請求數等....

9. 屬性的書寫順序, 舉個例子:
.hotel-content { /* 定位 */
display: block;
position: absolute;
left: 0;
top: 0; /* 盒模型 */
width: 50px;
height: 50px;
margin: 10px;
border: 1px solid black;
/ *其他* /
color: #efefef;
}
定位相關, 常見的有:display position left top float 等
盒模型相關, 常見的有:width height margin padding border 等
其他屬性
  按照這樣的順序書寫可見提升瀏覽器渲染dom的性能
  簡單舉個例子,網頁中的圖片,如果沒有設置width和height,在圖片載入之前,他所佔的空間爲0,但是當他加載完畢之後,那塊爲0的空間突然被撐開了,這樣會導致,他下面的元素重新排列和渲染,造成重繪(repaint)和迴流(reflow)。我們在寫css的時候,把元素的定位放在前頭,首先讓瀏覽器知道該元素是在文本流內還是外,具體在頁面的哪個部位,接着讓瀏覽器知道他們的寬度和高度,border等這些佔用空間的屬性,其他的屬性都是在這個固定的區域內渲染的,差不多就是這個意思吧~(@frec)
10. 小圖片sprite 合併
推薦文章NodeJs智能合併CSS精靈圖工具iSpriter

11. 當編寫針對特定html結構的樣式時,使用元素名 + 類名
/* 所有的nav都是針對ul編寫的 */
ul.nav {
...... }
".a div"和".a div.b",爲什麼後者好?如果需求有所變化,在".a"下有多加了一個div,試問,開始的樣式是不是會影響後來的div啊~

12. IE Hack List
/* 針對ie的hack */
selector {
property: value; /* 所有瀏覽器 */ property
property: value\9; /* 所有IE瀏覽器 */ property
property: value\0; /* IE8 */
+property: value; /* IE7 */
_property: value; /* IE6 */
*property: value; /* IE6-7 */
}
當使用hack的時候想想能不能用更好的樣式代替
13. 行內(inline)樣式
<p style="font-size: 12px; color: #FFFFFF">靖鳴君</p>
像這樣的行內樣式,最好用一個class代替。又如要隱藏某個元素,可以給他加一個class
.hide {
display: none;
}
儘量做到樣式和結構分離~

14. reset.css樣式
推薦網站:點擊打開鏈接

15.使用"*"來選擇元素
/*別這樣寫*/* {
margin: 0;
padding: 0;
}
這樣寫是沒有必要的,一些元素在瀏覽器中默認有margin或padding值,但是隻是部分元素,沒有必要將所有元素的margin、padding值都置爲0。

16. 鏈接的樣式,按照這個順序來書寫
a:link -> a:visited -> a:hover -> a:active


發佈了29 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章