當我們面對網站專案裡日益龐大的css,javascript文件,無論是為了二次開發還是瀏覽器解析,都應該優化他們的程式碼,但是優化並不意味著是簡單的壓縮或減小文件體積。條理清晰,運作效率高才是我們要的結果。那麼有哪些手段能夠我們的css程式碼呢?一起來看看下面的一些建議。
1.使用縮寫
縮寫能夠縮短你的工作時間,減少你的文件體積,何樂而不為?
針對相近的不同設定不同的值:
view plaincopy to clipboardprint?
p {
margin-top: 10px;
margin-right: 20px;
margin-bottom: 30px;
margin-left: 40px;
}
p {
margin-top: 10px;
margin-right: 20px;
margin-bottom: 30px;
margin-left: 40px;
}
使用縮寫:
view plaincopy to clipboardprint?
p { margin: 10px 20px 30px 40px; }
p { margin: 10px 20px 30px 40px; }
再來看看常用的font的縮寫
請參閱CSS Shorthand Guide (英) 和Efficient CSS with shorthand properties (英) 以了解更多關於縮寫的屬性。
2.避免使用Hack
Jon Hick的blog hicksdesign.co.uk/journal 利用瀏覽器條件性註解
Hack是個糟糕的東西,它會為不同瀏覽器定義一樣的程式碼,使得CSS繁冗餘。現在我們知道使用條件性註解來取代hack,他們在IE6和IE7中是被認可的,甚至IE團隊也推薦這樣使用。使用條件性註解服務於符合瀏覽器特性專用的CSS程式碼,因此,更小的、核心的CSS程式碼用來服務於遵從標準的瀏覽器,只有需求條件出現的時候(例如IE),才會去下載額外的CSS文件!
下面來看看IE6使用條件性註解的程式碼範例:
view plaincopy to clipboardprint?
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="ie6.css">
<![endif]-->
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="ie6.css">
<![endif]-->
這段程式碼使得IE6去下載額外的ie6.css解析它專用的css程式碼。同樣的,如果針對IE7只用把上面的6與7替換就行了。
3.使用留白
無論是為了自己閱讀或二次開發,都要讓CSS保持良好的可讀性,留白就扮演了關鍵的角色。
我們不鼓勵你為了得到一個更小的CSS文件,就去掉所有的空白格式,如tab,換行,空格等。這裡推薦嵌套的程式碼使用一個tab縮進,所有屬性獨立一行。
對比上下的圖片,是哪一種格式能讓你更節約修改的時間呢?留白會讓你更容易管理程式碼。
4.移除多餘的frameworks和resets
Nathan Smith的960 Grid System CSS framework使用的重置規則
如果你選擇使用CSS framework,包括你自己寫的,如果你去檢查代碼一定會發現該framework包含的一些規則並不適用於你當前的文件,它們是可以刪除的。
由此可以想到的還有reset,YUI Grid CSS使用的reset和Eric Meyer's Reset 目前都很流行, Resets能夠移除不同瀏覽器的預設樣式,使得頁面在各個瀏覽器之間的表現一致。但是它們通常包含了一個大的網站所需的所有屬性,一些例如pre,code,sub,dfn,var等等屬性對於普通網站來說根本不會用上,刪掉那些你用不上的。 Eric Meyer也會鼓勵你這麼做!
framework和reset會很好的幫助你的工作,但是如果不去掉那些你用不上的使用,反而會拖累你頁面的效率和可讀性。
5.擴展的CSS
Doug Bowman的stopdesign.com CSS 為層使用特殊的選擇器
另一種優化你的程式碼的方法就是分別為層進行具體的屬性宣告。
6.記錄你的工作
在團隊協作中,溝通書寫標準,編碼規範,註釋方法,風格極為重要。規則是建立在一個一致的方法的標準。這樣能夠防止別人重複你已經做過的工作,並防止程式碼的膨脹。
7.壓縮使用
為了使得瀏覽器節省更多下載個載入時間,壓縮是一個不錯的解決方案,但是僅限於發布的時候。 YUI Compressor 和CSSTidy 就是這樣方面的專家,他們能夠去除多餘的程式碼,校驗屬性互相覆蓋的錯誤。
許多流行的編輯器,像是BBEdit, TextMate, 和TopStyle 都能夠幫助你格式化你的CSS程式碼成你想要的樣子。你還能透過伺服器壓縮技術使用PHP處理你的CSS。你可以找到更多的CSS優化和壓縮的CSS工具。
有一點,這些程序盡可能會降低錯誤的發生,但並不是完美的。同樣,最好不要用他們去處理包含CSS hack的文件。這也是另一個讓那些hack儲存在另外的文件裡的原因。
結束
------------------------------------------------- -------------------------------
整潔和優化的程式碼不只是你的檔案大小,還包括了維護性和可讀性。以上的原理不只是針對CSS,它們還能應用到HTML,Javascript以及其他程式語言。 CSS檔案不只是為了呈現給你網站的最終使用者。上面的原理可以幫助使用者體驗以及開發者經驗。運用這些原則到你未來的專案中,一定能夠獲得重大的成效。