網(wǎng)站CSS代碼優(yōu)化的7個(gè)原則
時(shí)間:2022-05-29 16:36:01 | 來源:網(wǎng)絡(luò)營銷
時(shí)間:2022-05-29 16:36:01 來源:網(wǎng)絡(luò)營銷
作為網(wǎng)頁設(shè)計(jì)師或前端工程師,你可能還記得曾經(jīng)的那個(gè)網(wǎng)頁大小建議:一個(gè)網(wǎng)頁(包括HTML、CSS、Javacript、Flash和圖片)盡量不要超過30KB的大小,隨著互聯(lián)網(wǎng)的日益龐大,網(wǎng)絡(luò)帶寬也在飛速發(fā)展,很多設(shè)計(jì)師已經(jīng)不再考慮這條30KB的理想準(zhǔn)則。
如今隨著越來越受歡迎的CSS布局和Javascript對網(wǎng)站用戶體驗(yàn)的強(qiáng)化,使得這種現(xiàn)象越來越普遍,尤其是對于大型網(wǎng)站來說,僅僅一個(gè)CSS文件就已經(jīng)超過了30KB的上限。
即便如此,現(xiàn)在也有很多準(zhǔn)則來幫助你在完成CSS布局后進(jìn)行CSS代碼的壓縮和優(yōu)化,CSS代碼優(yōu)化的目的并不僅僅是減少CSS文件的大小,它還能讓你的CSS代碼更有條理、更高效。
1、使用CSS簡寫 如果你現(xiàn)在還對簡寫一點(diǎn)都不了解,那你就又寫落伍了,不過幸好,學(xué)起來并不是很難,使用簡寫是一種讓代碼減少的最簡單方法,沒有比現(xiàn)在更適合實(shí)踐代碼簡寫的時(shí)候了,還等什么,一起來隨億企邦看看吧。
Margin、border、padding、background、font、list-style和outline 都是可以進(jìn)行簡寫的屬性,CSS簡寫就是不再使用不同的相類似屬性的聲明:
p { margin-top: 10px;
margin-right: 20px;
margin-bottom: 30px;
margin-left: 40px; }
你可以把它們簡寫成這樣:
p { margin: 10px 20px 30px 40px; }
瀏覽器可以通過不同數(shù)量的屬性值來解釋你定義的CSS代碼,請看圖解:
上面的簡寫圖解說明的是依據(jù)不同的屬性值可以進(jìn)行不同的縮寫,這種方法同樣適用于padding和Border-width屬性(具體可查看億企邦《CSS常用代碼使用技巧大全》的相關(guān)介紹)。
另外,億企邦覺得Font的簡寫對于縮小代碼量也是很有幫助的,而且能讓你少打很多字母,如下圖所示:
億企邦注:如果沒有定義某個(gè)屬性值的話,將繼承副級元素的定義或使用默認(rèn)值。
2、避免使用Hack Hack是一個(gè)糟糕的東西,它會(huì)為不同瀏覽器定義一樣的代碼,使得CSS繁冗,現(xiàn)在我們知道使用條件性注釋來代替hack,他們在IE6和IE7中是被認(rèn)可的,甚至IE團(tuán)隊(duì)也推薦這樣使用,使用條件性注釋服務(wù)于符合瀏覽器特性專用的CSS代碼。
因此更小核心的CSS代碼用來服務(wù)于遵從標(biāo)準(zhǔn)的瀏覽器,只有需求條件出現(xiàn)的時(shí)候(比如IE),才會(huì)去下載額外的CSS文件!這段代碼使得IE6去下載額外的ie6.css解析它專用的css代碼。
同樣的,如果針對IE7只用把上面的6與7替換就行了。
3、使用留白 無論是為了自己閱讀還是二次開發(fā),億企邦覺得都要讓CSS保持良好的可讀性,留白就充當(dāng)了關(guān)鍵的角色。
億企邦不鼓勵(lì)你為了得到一個(gè)更小的CSS文件,就去掉所有的空白格式,如tab,換行,空格等,這里推薦嵌套的代碼使用一個(gè)tab縮進(jìn),所有屬性獨(dú)立一行。
對比上圖中的兩種CSS書寫格式,哪一種格式能讓你更加節(jié)約閱讀和修改的時(shí)間呢?留白的效果顯而易見,它會(huì)讓你更容易管理代碼。
4、移除多余的結(jié)構(gòu)(frameworks)和重設(shè)(resets) 如果你選擇使用CSS framework,包括你自己寫的,如果你去檢查代碼一定會(huì)發(fā)現(xiàn)該framework包含的一些規(guī)則并不適用于你當(dāng)前的文件,它們是可以被刪除的。
由此可以想到的還有reset,YUI Grid CSS使用的reset和Eric Meyer’s重設(shè)(Reset)目前都很流行,Resets能夠移除不同瀏覽器的默認(rèn)樣式,使得頁面在各個(gè)瀏覽器之間的表現(xiàn)一致。
但是它們通常包含了一個(gè)大的網(wǎng)站需要的所有屬性,一些例如屬性對于普通網(wǎng)站來說根本不會(huì)用上,刪掉那些你用不上的,Eric Meyer也會(huì)鼓勵(lì)你這樣做(對于CSS細(xì)節(jié)的問題,大家可通過億企邦《看看那些能提高效率卻容易被人忽略的CSS細(xì)節(jié)》的相關(guān)介紹來了解)。
framework和reset會(huì)很好的幫助你的工作,但是如果不去掉那些你用不上的使用,反而會(huì)拖累你頁面的效率和可讀性。
5、將CSS分成清晰的結(jié)構(gòu)塊 另一種優(yōu)化CSS代碼的方法是按照你的習(xí)慣將CSS分成清晰的結(jié)構(gòu)塊,將CSS文件的聲明用注釋分隔開并進(jìn)行排版,可以更方便自己在很長時(shí)間以后重新審理這個(gè)CSS文件,到那時(shí)你的效率會(huì)高出許多。
然而,億企邦更崇尚那種拆分布局風(fēng)格,也就是給每種布局一個(gè)單獨(dú)的CSS文件。
6、制定一套CSS標(biāo)準(zhǔn) 如果你是一個(gè)設(shè)計(jì)團(tuán)隊(duì)中的一員,那么讓你的代碼保持規(guī)則的一致性并能與其他成語建立良好的溝通是相當(dāng)重要的,而且還要建立一種網(wǎng)站CSS的標(biāo)準(zhǔn)。
例如,團(tuán)隊(duì)中的某個(gè)成員想出了一個(gè)比較不錯(cuò)的網(wǎng)站標(biāo)簽切換界面,記錄下來這些想法和注解會(huì)幫助團(tuán)隊(duì)的其他成員再次使用這種效果,這樣能夠避免HTML或CSS代碼的臃腫。
記錄工作主要包括標(biāo)記向?qū)?markup guides)和樣式表向?qū)?style sheet guides),這種工作并不僅僅適用于團(tuán)隊(duì),也同樣適用于一個(gè)人的設(shè)計(jì)工作(一個(gè)人的”團(tuán)隊(duì)”),畢竟,在完整一個(gè)設(shè)計(jì)項(xiàng)目之后,經(jīng)過一年甚至更長的時(shí)間,當(dāng)你再回來看到這些曾經(jīng)自己寫的代碼時(shí),也一樣會(huì)覺得很陌生。
將來你會(huì)通過自己曾經(jīng)的記錄了解到在那些CSS結(jié)構(gòu)是如何讓網(wǎng)頁表現(xiàn)的,或那個(gè)網(wǎng)頁對表單按鈕的起到副作用,記住,一定要養(yǎng)成為CSS寫注釋的習(xí)慣。
7、壓縮使用 為了使得瀏覽器節(jié)省更多下載個(gè)載入時(shí)間,壓縮是一個(gè)不錯(cuò)的解決方案,但是僅限于發(fā)布的時(shí)候,YUI Compressor和CSSTidy就是這樣方面的專家,他們能夠去除多余的代碼,校驗(yàn)屬性互相覆蓋的錯(cuò)誤。
許多流行的編輯器,比如BBEdit, TextMate, 和 TopStyle 都能夠幫助你格式化你的CSS代碼成你想要的樣子,你還能通過服務(wù)器壓縮技術(shù)使用PHP處理你的CSS,你可以找到更多的CSS優(yōu)化和壓縮的CSS工具,比如億企邦的CSS壓縮工具:http://www.mahaixiang.cn/zyxz/zxgj/cssys.html。
還有一點(diǎn),這些程序盡可能會(huì)降低錯(cuò)誤的發(fā)生,但并不是完美的,同樣,最好不要用他們?nèi)ヌ幚戆珻SS hack的文件,這也是另一個(gè)讓那些hack儲(chǔ)存在另外的文件里的原因。
億企邦點(diǎn)評: 整理和優(yōu)化代碼不僅是為了你的CSS文件大小,還包括了維護(hù)性和可讀性,以上的原理并不只是針對CSS,它們還能應(yīng)用到HTML,Javascript以及其他編程語言,CSS文件不只是為了呈現(xiàn)給你網(wǎng)站的最終用戶,上面的原理可以幫助用戶體驗(yàn)以及開發(fā)者經(jīng)驗(yàn),運(yùn)用這些原則到你未來的項(xiàng)目中,一定能夠獲得重大的成效。