CSS代碼編寫建議

眾所周知,CSS是一個項目的最基礎部分,雖然寫起來不難,但是如果寫出來的CSS代碼雜亂無章,就會變得很難管理,所以如何實現高效整潔的CSS代碼,請看如下幾點:

1.良好的命名習慣

亂七八糟或者無語義命名的代碼,誰看了都會抓狂。就像這樣的代碼:

.aaabb{margin:2px;color:red;}

我想即使是初學者,也不至于會在實際項目中如此命名一個class,但有沒有想過這樣的代碼同樣是很有問題的:

<h1>My name is <span>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就可以了。

2.代碼縮寫

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; }

如果您想更了解這些屬性要怎么縮寫,可以參考《常用CSS縮寫語法總結》或者下載CSS-Shorthand-Cheat-Sheet.pdf 。

3.利用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; }

4.靈活使用多重選擇器

你可以合并多個CSS選擇器為一個,如果他們有共同的樣式的話。這樣做不但代碼簡潔且可為你節省時間和空間。如:

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; }

  1. 適當的代碼注釋

代碼注釋可以讓別人更容易讀懂你的代碼,且合理的組織代碼注釋,可使得結構更加清晰。你可以選擇做的樣式表的開始添加目錄:

/*------------------------------------1. Reset2. Header3. Content4. SideBar5. Footer----------------------------------- */`

如此你代碼的結構就一目了然,你可以容易的查找和修改代碼。

而對于代碼的主內容,也應適當的加以劃分,甚至在有必要的地方在對代碼加以注釋說明,這樣也有利于團隊開發:

/*** Header ***/
#header{ height:145px; position:relative; }
#header h1{ width:324px; margin:45px 0 0 20px; float:left; height:72px;} /*** Content ***/
#content{ background:#fff; width:650px; float:left; min-height:600px; overflow:hidden;}
#content h1{color:#F00}/* 設置字體顏色 */
#content .posts{ overflow:hidden; }
#content .recent{ margin-bottom:20px; border-bottom:1px solid #f3f3f3; ``position:relative; overflow:hidden; }
/*** Footer ***/
#footer{ clear:both; padding:50px 5px 0; overflow:hidden;}
#footer h4{ color:#b99d7f; font-family:Arial, Helvetica, sans-serif; font-size:1.1em; }

6.選擇更優的樣式屬性值

CSS中有些屬性采用不同的屬性值,雖然達到的效果差不多,當性能上卻存在著差異,如

區別在于border:0把border設為0px,雖然在頁面上看不見,但按border默認值理解,瀏覽器依然對border-width/border-color進行了渲染,即已經占用了內存值。

而border:none把border設為“none”即沒有,瀏覽器解析“none”時將不作出渲染動作,即不會消耗內存值。所以建議使用border:none;

同樣的,display:none隱藏對象瀏覽器不作渲染,不占用內存。而visibility:hidden則會。

7.使用外部樣式表

這個原則始終是一個很好的設計實踐。不單可以更易于維護修改,更重要的是使用外部文件可以提高頁面速度,因為CSS文件都能在瀏覽器中產生緩存。內置在HTML文檔中的CSS則會在每次請求中隨HTML文檔重新下載。所以,在實際應用中,沒有必要把CSS代碼內置在HTML文檔中:

<style type="text/css" > #container{ .. } #sidebar{ .. } </style>

<li style="font-family:Arial, helvetica, sans-serif; color:#666; " >

而是使用<link>導入外部樣式表:

<link rel="stylesheet" type="text/css" href="css/styles.css" />

8.代碼壓縮

當你決定把網站項目部署到網絡上,那你就要考慮對CSS進行壓縮,出去注釋和空格,以使得網頁加載得更快。壓縮您的代碼,可以采用一些工具

利用它可精簡CSS代碼,減少文件大小,以獲得更高的加載速度。

總結

在本文中,我力圖更詳盡的總結書寫更高效的CSS代碼的原則,但鑒于本人見識和精力有限,我還是希望這些原則能幫助您更好的書寫和管理您的CSS代碼,不知您又是如何書寫CSS的,是否也有一些想要分享的技巧?給我留言吧謝謝~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1、垂直對齊 如果你用CSS,則你會有困惑:我該怎么垂直對齊容器中的元素?現在,利用CSS3的Transform,...
    kiddings閱讀 3,207評論 0 11
  • 學習CSS的最佳網站沒有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,101評論 0 1
  • 規范目的:為了提高工作效率,便于后臺人員添加功能及前端后期優化維護,輸出高質量的文檔,在網站建設中,使結構更加清晰...
    Souce_閱讀 1,029評論 0 0
  • 本文為閱讀《Head First HTML 與 CSS》的css部分的讀書筆記,方便回顧書上的知識,另一篇為Hea...
    兼續閱讀 1,872評論 0 17
  • 一直想來場說走就走的旅行,可是一直卻沒有。 為什么?錢?時間?無非這兩種,作為一名在校大學生,說沒有錢,...
    玉小茹閱讀 195評論 0 0