高效整潔CSS代碼原則(上)

來源:互聯網
上載者:User

標籤:style   c   class   blog   code   java   

CSS學起來並不難,但在大型項目中,就變得難以管理,特別是不同的人在CSS書寫風格上稍有不同,團隊上就更加難以溝通,為此總結了一些如何實現高效整潔的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元素間的聯絡。

另外還有一種情況,一些固定的樣式,定義後就不會修改的了,那你命名時就不用擔憂剛剛說的那種情況,如

.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選取器為一個,如果他們有共同的樣式的話。這樣做不但代碼簡潔且可為你節省時間和空間。如:

?
1 2 3 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; }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.