高效整潔CSS代碼原則 (上)
CSS學起來并不難,但在大型項目中,就變得難以管理,特別是不同的人在CSS書寫風格上稍有不同,團隊上就更加難以溝通,為此總結了一些如何實現(xiàn)高效整潔的CSS代碼原則:
1. 使用Reset但并非全局Reset
不同瀏覽器元素的默認屬性有所不同,使用Reset可重置瀏覽器元素的一些默認屬性,以達到瀏覽器的兼容。但需要注意的是,請不要使用全局Reset:
- { margin:0; padding:0; }
這不僅僅因為它是緩慢和低效率的方法,而且還會導致一些不必要的元素也重置了外邊距和內邊距。在此建議參考YUI Reset和Eric Meyer的做法。
- /** 清除內外邊距 **/
- body, h1, h2, h3, h4, h5, h6, hr, p,
- blockquote, /* structural elements 結構元素 */
- dl, dt, dd, ul, ol, li, /* list elements 列表元素 */
- pre, /* text formatting elements 文本格式元素 */
- form, fieldset, legend, button, input, textarea, /* form elements 表單元素 */
- th, td, /* table elements 表格元素 */
- img/* img elements 圖片元素 */{
- border:medium none;
- margin: 0;
- padding: 0;
- }
- /** 設置默認字體 **/
- body,button, input, select, textarea {
- font: 12px/1.5 '宋體',tahoma, Srial, helvetica, sans-serif; }
- h1, h2, h3, h4, h5, h6 { font-size: 100%; }
- em{font-style:normal;}
- /** 重置列表元素 **/
- ul, ol { list-style: none; }
- /** 重置超鏈接元素 **/
- a { text-decoration: none; color:#333;}
- a:hover { text-decoration: underline; color:#F40; }
- /** 重置圖片元素 **/
- img{ border:0px;}
- /** 重置表格元素 **/
- table { border-collapse: collapse; border-spacing: 0; }
2. 良好的命名習慣
無疑亂七八糟或者無語義命名的代碼,誰看了都會抓狂。就像這樣的代碼:
- .aaabb{margin:2px;color:red;}
我想即使是初學者,也不至于會在實際項目中如此命名一個class,但有沒有想過這樣的代碼同樣是很有問題的:
- <h1>My name is <span class="red blod">Wiky</span></h1>
問題在于如果你需要把所有原本紅色的字體改成藍色,那修改后就樣式就會變成:
- .red{color:bule;}
這樣的命名就會很讓人費解,同樣的命名為.leftBar的側邊欄如果需要修改成右側邊欄也會很麻煩。所以,請不要使用元素的特性(顏色,位置,大小等)來命名一個class或id,您可以選擇意義的命名如:
- #navigation{...}
- .sidebar{...}
- .postwrap{...}
這樣,無論你如何修改定義這些class或id的樣式,都不影響它跟HTML元素間的聯(lián)系。
另外還有一種情況,一些固定的樣式,定義后就不會修改的了,那你命名時就不用擔憂剛剛說的那種情況,如
- .alignleft{float:left;margin-right:20px;}
- .alignright{float:right;text-align:right;margin-left:20px;}
- .clear{clear:both;text-indent:-9999px;}
那么對于這樣一個段落
- <p class="alignleft">我是一個段落!</p>
如果需要把這個段落由原先的左對齊修改為右對齊,那么只需要修改它的className就為alignright就可以了。
3. 代碼縮寫
CSS代碼縮寫可以提高你寫代碼的速度,精簡你的代碼量。在CSS里面有不少可以縮寫的屬性,包括margin,padding,border,font,background和顏色值等,如果您學會了代碼縮寫,原本這樣的代碼:
- li{
- font-family:Arial, Helvetica, sans-serif;
- font-size: 1.2em;
- line-height: 1.4em;
- padding-top:5px;
- padding-bottom:10px;
- padding-left:5px;
- }
就可以縮寫為:
- li{
- font: 1.2em/1.4em Arial, Helvetica, sans-serif;
- padding:5px 0 10px 5px;
- }
4. 利用CSS繼承
如果頁面中父元素的多個子元素使用相同的樣式,那最好把他們相同的樣式定義在其父元素上,讓它們繼承這些CSS樣式。這樣你可以很好的維護你的代碼,并且還可以減少代碼量。那么本來這樣的代碼:
- #container li{ font-family:Georgia, serif; }
- #container p{ font-family:Georgia, serif; }
- #container h1{font-family:Georgia, serif; }
就可以簡寫成:
- #container{ font-family:Georgia, serif; }
5. 使用多重選擇器
你可以合并多個CSS選擇器為一個,如果他們有共同的樣式的話。這樣做不但代碼簡潔且可為你節(jié)省時間和空間。如:
- h1{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
- h2{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
- h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
可以合并為:
- h1, h2, h3{ font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
因為本文介紹的比較詳細,所以分兩篇給大家介紹,請看下一篇...
【編輯推薦】