它容易嗎?
一旦有人了解并使用了css技術(shù),沒(méi)有多少人認(rèn)為對(duì)網(wǎng)站布局和定義用css會(huì)比用table表格有難度。然而,對(duì)于管理大型動(dòng)態(tài)、復(fù)雜的網(wǎng)站樣式明顯是一個(gè)艱巨的工作。
禁止壓縮
再進(jìn)一步講之前,我必須澄清一個(gè)觀點(diǎn)。以前當(dāng)我寫gzipping CSS的文章時(shí),大家通過(guò)郵件或博客對(duì)“如果你的css文件過(guò)大,你不知道你應(yīng)該怎么辦時(shí)不要瘋狂的壓縮它們”發(fā)表了各自的看法。那么,我們看下面列表的同時(shí)研究一下如何讓css文件更小。
| 名稱 | CSS 文件大小(kb) | 注釋 |
|---|---|---|
| www.mezzoblue.com | 20KB | 325 行css樣式代碼 |
| www.stopdesign.com | 42.75KB | 1200 行css樣式代碼 |
| www.wired.com | 27.28KB | 1014 行css樣式代碼 |
| espn.go.com | 20.81KB | 799 行css樣式代碼 |
| www.blogger.com | 26.52KB | 1200行css樣式代碼 |
| www.travelocity.com | 31.79KB | 400 行css樣式代碼 |
以上是應(yīng)用css布局、定義網(wǎng)站的css文件大小的詳細(xì)數(shù)據(jù),它是定義整個(gè)網(wǎng)站的css文件大小。每一個(gè)css標(biāo)簽樣式代碼單獨(dú)寫一行。
以上網(wǎng)站的css文件都大于20Kb,如果你寫的css樣式代碼達(dá)到1000行的話,是否應(yīng)該刪除代碼里的斷行、空格,或者你應(yīng)該處理一下那些大而復(fù)雜的樣式。css文件的大小是個(gè)問(wèn)題,對(duì)于以后的維護(hù)也是個(gè)問(wèn)題。
但是,當(dāng)網(wǎng)站上線后,你多久真正管理、維護(hù)css那?
對(duì)于一些上線后的網(wǎng)站來(lái)說(shuō),它們的css基本保持不變的。
我知道在網(wǎng)站出現(xiàn)問(wèn)題之前我不會(huì)對(duì)網(wǎng)站的css文件進(jìn)行更新、維護(hù)的。我相信Doug網(wǎng)站在他們重新設(shè)計(jì)改版之前他們也不會(huì)對(duì)css改動(dòng)太大。像www.travelocity.com網(wǎng)站又會(huì)是怎樣那?或是為了特殊的宣傳,你不得不給網(wǎng)站更新一段時(shí)間的內(nèi)容?
事實(shí)上一些網(wǎng)站的css并不是一成不變的。對(duì)于大型網(wǎng)站(或者簡(jiǎn)單的網(wǎng)站但是結(jié)構(gòu)復(fù)雜的)它們是代碼簡(jiǎn)潔、備有注釋、組織有序的css文件。
結(jié)論:編寫易于管理的css
通過(guò)對(duì)以上站點(diǎn)css文件審查,有一件事情變的越來(lái)越明了了。有幾條結(jié)論需要我們?cè)谝婚_(kāi)始編寫css的時(shí)候就應(yīng)該注意,我們應(yīng)該如何編寫易于管理、維護(hù)的css樣式。
1、繼承樣式、重復(fù)利用?
2、你將如何管理hacks兼容樣式?
3、你是否應(yīng)將線上css文件優(yōu)化在一行,而在編寫的時(shí)候可以多行?
4、為了易于管理維護(hù),你是否將你的樣式文件分為多個(gè)文件?(看digital-web, bleach)
我們一起看一下每一個(gè)結(jié)論,并對(duì)其進(jìn)行總結(jié)后制定一個(gè)可行的方案。
繼承與重復(fù)利用
Davd在他的“繼承與重復(fù)利用”文章里面做了詳細(xì)的分析。其實(shí)繼承與重復(fù)利用是同一個(gè)范疇。在哪里設(shè)置樣式需要根據(jù)實(shí)際項(xiàng)目情況來(lái)定。然而在本文所講的范圍內(nèi),在管理大而復(fù)雜的樣式時(shí)重復(fù)利用是經(jīng)常使用到的。
管理兼容樣式
這一觀點(diǎn)是比較重要的。當(dāng)用css搭建網(wǎng)站時(shí),使用兼容樣式是不可避免的。Integrated Web Design: Strategies for Long-Term CSS Hack Management 是一篇很有用的文章,我認(rèn)為文章里給我們的三條建議是比較重要的。
1、對(duì)css和兼容樣式了如指掌
2、注釋、注釋、注釋
3、采用正確修復(fù)方法
使用以上三條建議,第一條讓我們盡量的少用兼容樣式(了解你的兼容css樣式意味著你應(yīng)該清楚何時(shí)使用到它們)它們很容易解釋并容易修復(fù)的。從而使你定義的css樣式比較容易管理。
多行優(yōu)化為一行,并根據(jù)功能的需要對(duì)css樣式進(jìn)行劃分
我之所以將這兩條放在一起是因?yàn)樗鼈兌夹枰獧?quán)衡利弊的。如果我們想讓樣式比較容易管理的話,我們則有必要增加代碼并會(huì)增加瀏覽器的請(qǐng)求負(fù)擔(dān),比如使用額外的樣式、空白和斷行。
難處理嗎?
有些人認(rèn)為這些并不重要的。額外的樣式表意味著增加服務(wù)器請(qǐng)求,但對(duì)于multi-threading瀏覽器來(lái)說(shuō)并不是問(wèn)題。同時(shí)css軟件像TopStyle很容易將你的文件壓縮成單行的,因此在工作的時(shí)候用多行的版本,當(dāng)上傳到服務(wù)器的時(shí)候用單行的版本并不是一件困難的事情;甚至你會(huì)有一些小的腳本工具來(lái)幫你(將你的代碼優(yōu)化為單行就可以上傳了)。
看一下現(xiàn)實(shí)情況
記住,這里我們討論的是怎么讓大型網(wǎng)站文件更易管理。為復(fù)雜的結(jié)構(gòu)頁(yè)面定義樣式(多主題,多層的導(dǎo)航),多樣式表意味著你可能需要使用4-5個(gè)文件:顏色,導(dǎo)航,結(jié)構(gòu),表單,表格 等等。
除了上面提到的之外,當(dāng)我們打開(kāi) espn 主頁(yè)的時(shí)候會(huì)有短暫的斷開(kāi), 你可能會(huì)去想到這是因?yàn)轭~外的請(qǐng)求引起的。每一個(gè)網(wǎng)站都會(huì)每天都會(huì)有基本的更新(大概每周都會(huì)有樣式表的更細(xì),有的時(shí)候甚至每天更新),同時(shí)你也會(huì)發(fā)現(xiàn)為了將文件變小上傳到服務(wù)器上是件痛苦的事情。
給予我們的啟示?
回想一下我們討論過(guò)的內(nèi)容,大型網(wǎng)站方便管理的css樣式應(yīng)為:
1、總體上來(lái)說(shuō),編寫css時(shí)需要重復(fù)利用
2、良好的css注釋說(shuō)明
3、對(duì)于兼容樣式,需要一個(gè)單獨(dú)的兼容樣式文件
4、一個(gè)以上css文件或幾個(gè)css文件更易維護(hù)管理
5、css本地是多行、斷行的,但是上傳到服務(wù)器上的css應(yīng)該是優(yōu)化為一行的。
通過(guò)以上列表不難看出,組織良好的樣式文件將會(huì)增加css文件與代碼,同時(shí)增加服務(wù)器請(qǐng)求負(fù)擔(dān)。然而,我們都知道一旦css樣式第一次解析下載后它就會(huì)緩存在本地,這樣以后就減輕了對(duì)代碼的反復(fù)請(qǐng)求了。
合理使用沉余代碼
在合理使用沉余代碼方面我們應(yīng)該怎么做那?它可直接影響著我們對(duì)樣式管理維護(hù)的方式。好了,讓我們看一下“實(shí)用的css管理與優(yōu)化”文章里面介紹的幾種管理優(yōu)化css的講解。
討論
請(qǐng)用下面的留言區(qū)對(duì)本文提到的問(wèn)題列表進(jìn)行討論,在留言之前請(qǐng)略讀一下“實(shí)用的css管理與優(yōu)化”,你的評(píng)論可能比上文說(shuō)的更恰當(dāng)。
中文原文:關(guān)于css管理優(yōu)化的探討
英文原文:Discussing CSS Management and Optimization
新聞熱點(diǎn)
疑難解答
圖片精選