css的團隊合做規則以及怎樣寫出高性能的css代碼。css
1、使用Reset但並不是全局Resethtml
同瀏覽器元素的默認屬性有所不一樣,使用Reset可重置瀏覽器元素的一些默認屬性,以達到瀏覽器的兼容。但須要注意的是,請不要使用全局Reset: express
*{ margin:0; padding:0; }
html{ color:#000; background:#FFF; } body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td { margin:0; padding:0; } table { border-collapse:collapse; border-spacing:0; } fieldset, img { border:0; }……(引自YUI3-reset.css: http://yui.yahooapis.com/3.17.2/build/cssreset/cssreset.css)
2、良好的命名習慣api
良好的命名習慣,命名有意義,書寫規則統一,其餘的不用多說了。瀏覽器
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; }
就能夠縮寫爲:ide
li{ font: 1.2em/1.4em Arial, Helvetica, sans-serif; padding:5px 0 10px 5px; }
4、使用繼承、合併書寫(多重選擇器)工具
若是頁面中父元素的多個子元素使用相同的樣式,那最好把他們相同的樣式定義在其父元素上,讓它們繼承這些CSS樣式。這樣你能夠很好的維護你的代碼,而且還能夠減小代碼量。那麼原本這樣的代碼:post
#container li{ font-family:Georgia, serif; } #container p{ font-family:Georgia, serif; } #container h1{font-family:Georgia, serif; }
就能夠簡寫成:
#container{ font-family:Georgia, serif; }
合併多個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; }
5、 適當的代碼註釋
代碼註釋可讓別人更容易讀懂你的代碼,且合理的組織代碼註釋,可以使得結構更加清晰。你能夠選擇作的樣式表的開始添加目錄:
/*------------------------------------ 1. Reset 2. Header 3. Content 4. SideBar 5. 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的可讀性
書寫可讀的CSS將會使得更容易查找和修改樣式。對於如下兩種狀況,哪一種可讀性更高,我想不言而明。
/*** 每一個樣式屬性寫一行 ***/ div{ background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px; padding:5px 0 10px 5px; width:30%; z-index:10; } /*** 全部的樣式屬性寫在同一行 ***/ div{ background-color:#3399cc; color:#666; font: 1.2em/1.4em Arial, Helvetica, sans-serif; height:300px; margin:10px 5px;padding:5px 0 10px 5px; width:30%; z-index:10; }
7、選擇更優的樣式屬性值
CSS中有些屬性採用不一樣的屬性值,雖然達到的效果差很少,當性能上卻存在着差別,如
border:0把border設爲0px,雖然在頁面上看不見,但按border默認值理解,瀏覽器依然對border-width/border-color進行了渲染,即已經佔用了內存值。
而border:none把border設爲"none"即沒有,瀏覽器解析"none"時將不做出渲染動做,即不會消耗內存值。因此建議使用border:none;
一樣的,display:none隱藏對象瀏覽器不做渲染,不佔用內存。而visibility:hidden則會。
8、使用<link>代替@import
首先,@import不屬於XHTML標籤,也不是Web標準的一部分,它對於較早期的瀏覽器兼容也不高,而且對於網站的性能有某些負面的影響。
9、 使用外部樣式表
這個原則始終是一個很好的設計實踐。不單能夠更易於維護修改,更重要的是使用外部文件能夠提升頁面速度,由於CSS文件都能在瀏覽器中產生緩存。內置在HTML文檔中的CSS則會在每次請求中隨HTML文檔從新下載。因此,在實際應用中,沒有必要把CSS代碼內置在HTML文檔中:
<style type="text/css" > #container{ .. } #sidebar{ .. } </style>
而是使用<link>導入外部樣式表:<link rel="stylesheet" type="text/css" href="css/styles.css" />
10、 避免使用CSS表達式(Expression)
CSS表達式是動態設置CSS屬性的強大(但危險)方法。Internet Explorer從第5個版本開始支持CSS表達式。下面的例子中,使用CSS表達式能夠實現隔一個小時切換一次背景顏色:
background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" );
如上所示,expression中使用了JavaScript表達式。CSS屬性根據JavaScript表達式的計算結果來設置。
表達式的問題就在於它的計算頻率要比咱們想象的多。不只僅是在頁面顯示和縮放時,就是在頁面滾動、乃至移動鼠標時都會要從新計算一次。給CSS表達式增長一個計數器能夠跟蹤表達式的計算頻率。在頁面中隨便移動鼠標均可以輕鬆達到10000次以上的計算量。
若是必須使用CSS表達式,必定要記住它們要計算成千上萬次而且可能會對你頁面的性能產生影響。因此,在非不得已,請避免使用CSS表達式。
11、 代碼壓縮
當你決定把網站項目部署到網絡上,那你就要考慮對CSS進行壓縮,出去註釋和空格,以使得網頁加載得更快。壓縮您的代碼,能夠採用一些工具,如YUI Compressor,利用它可精簡CSS代碼,減小文件大小,以得到更高的加載速度。