廣東福建浙江江蘇上海北京山東遼寧江西河南四川湖北湖南廣西安徽黑龍江天津重慶吉林河北貴州甘肅山西云南新疆寧夏海南陜西西藏青海內(nèi)蒙古

新聞中心

網(wǎng)站設(shè)計(jì)之合理架構(gòu)css
發(fā)布時(shí)間:2014-10-12 00:14:10
架構(gòu)css   在當(dāng)前瀏覽器普遍支持的前提下,css被我們賦予了前所未有的使命。然而依賴css越多,樣式表文件就會(huì)變得越大越復(fù)雜。與此同時(shí),文件維護(hù)和組織的考驗(yàn)也隨之而來。   (曾幾何時(shí))只要一個(gè)css文件就夠了——所有規(guī)則(rule)匯聚一堂,增刪改都很方便——可這種日子早已遠(yuǎn)去。(現(xiàn)在)建立新網(wǎng)站時(shí),必須花點(diǎn)時(shí)間好好籌劃怎么組織和架構(gòu)css。   文件的組織   構(gòu)建css系統(tǒng)的第一步是大綱的擬定。(我認(rèn)為)css組織規(guī)劃的重要性堪比網(wǎng)站目錄結(jié)構(gòu)。(htmlor注:用詞夸張一點(diǎn),讓你加深記憶) 沒有哪種方案放之四海而皆準(zhǔn),因此我們會(huì)討論一些基本的組織方案,以及它們各自的利弊。   主css文件   通?梢允褂靡粋(gè)主css文件,來放置所有頁面共享的規(guī)則。這個(gè)文件會(huì)包含默認(rèn)的字體、鏈接、頁眉和其他等樣式。有了主css文件之后,我們開始探討高級(jí)組織策略。   方法一:基于原型   最基本的策略是基于原型頁面(archetype page)分離css文件。假如一個(gè)網(wǎng)站的首頁、子頁面和組合頁設(shè)計(jì)不同,就可以采用基于原型的策略。(這種策略下)每個(gè)頁面都會(huì)有專屬的css文件。   在原型數(shù)量不多的情況下,這個(gè)方法簡(jiǎn)單明了、行之有效。然而,當(dāng)頁面元素并不按部就班的位于各個(gè)原型頁時(shí),問題就出現(xiàn)了。如果子頁面和組合頁共享某些元素,而首頁卻沒有,我們應(yīng)該怎么做呢?   把共享元素放入主css文件。這雖不是最純正的解決辦法,卻適用于某些具體情況?墒侨绻W(wǎng)站龐大,(這樣做的話)主css文件會(huì)迅速膨脹——這就違背了分離文件的初衷:避免導(dǎo)入不必要的大文件。   在組合頁和子頁面的css文件里各放一份樣式代碼。(這么做)就意味著要維護(hù)冗余代碼,很顯然我們不想這樣。   創(chuàng)建一個(gè)新的文件,由這兩種頁面共享。這聽起來不錯(cuò)。不過假如只有10行代碼,我們創(chuàng)建這個(gè)文件僅僅是為了共享這10行代碼?(htmlor注:殺雞用牛刀?) 這方法很純粹,但如果網(wǎng)站龐大有很多對(duì)頁面共享很少量元素時(shí)(htmlor注:比如30對(duì)頁面分別共享10行代碼),就顯得很笨重了。   創(chuàng)建一個(gè)單獨(dú)的css文件,包含所有共享元素的樣式。這方法可能比較簡(jiǎn)單,卻要取決于網(wǎng)站的大小和共享元素的多少。有種情況會(huì)很煩:導(dǎo)入了一個(gè)很大的css文件,但頁面只用到一小部分樣式——還是那句話,這違背了分離文件的初衷。   這就是我所說的重疊的兩難(overlap dilemma)。零碎css規(guī)則的重疊不一而足,并沒有一個(gè)完全清晰無誤的方案來組織它們。   方法二:基于頁面元素/塊   如果網(wǎng)站使用服務(wù)器端include,這個(gè)方法會(huì)很不錯(cuò)。舉例說明,如果使用頁眉include,它會(huì)有自己相應(yīng)的css文件。頁腳或者其他部分的include可以如法炮制,只須導(dǎo)入自己的css文件。這個(gè)方法簡(jiǎn)單干凈,不過可能會(huì)產(chǎn)生很多小css文件。   舉例來說,假如頁腳的樣式只需要20行css代碼,單獨(dú)創(chuàng)建一個(gè)文件就劃不來了。而且這個(gè)方法會(huì)導(dǎo)致每個(gè)頁面都包含一堆css文件——因?yàn)橛卸嗌賗nclude,就得有多少css文件。   方法三:基于標(biāo)記   這個(gè)方案直觀實(shí)際,與前一個(gè)類似。如果網(wǎng)站共有30個(gè)頁面,其中10個(gè)含有form,那么可以創(chuàng)建一個(gè)css文件專門處理form的樣式,只在這10個(gè)頁面導(dǎo)入它。如果另外10個(gè)頁面含有table,就創(chuàng)建一個(gè)文件專門處理table樣式……諸如此類。   另外的組織技巧   除了用主觀的方法組織文件,我們還要考慮如打印、手持設(shè)備和屏幕等多種媒體類型。這雖然已經(jīng)很清楚的定義過,可依舊是建立文件結(jié)構(gòu)時(shí)應(yīng)該考慮的一個(gè)因素。一旦必須支持多種媒體類型,主css文件里的某些規(guī)則可能就得重新考慮。   另外,品牌聯(lián)合也可能是一個(gè)重要因素。(htmlor注:如google和nike聯(lián)手推出的joga) 如果涉及品牌聯(lián)合,你就得考慮哪些元素應(yīng)該調(diào)整以適應(yīng)另一品牌。比如分別使用不同的css文件等。   還有一個(gè)常被忽略的技巧:使用嵌套的@import語句。只包含一連串@import語句,或者再加幾句css規(guī)則,就能創(chuàng)建一個(gè)css文件。用這個(gè)方法完全可以創(chuàng)建網(wǎng)站的主css文件(用@import導(dǎo)入各部分的樣式文件)。假如網(wǎng)站的每個(gè)頁面都導(dǎo)入了4到5個(gè)不同的css文件,無疑你應(yīng)該考慮使用這個(gè)技巧。   規(guī)則和選擇器的組織   談完了文件組織,接著討論一下怎么組織文件里的東西吧。很自然,我們希望在文件里暢通無阻的瀏覽,迅速找到要編輯的選擇器(selector)或規(guī)則。   冗余 vs. 附屬   正如Dave Shea在其文章《冗余 vs. 附屬》(Redundancy vs. Dependency)里所說的,你必須不斷了解級(jí)聯(lián)(cascade)。你要決定是對(duì)選擇器編組(意味著附屬),還是把它們分離(意味著冗余)。編組可以保持代碼簡(jiǎn)潔扼要,可是會(huì)建立附屬關(guān)系,導(dǎo)致維護(hù)開銷增加。如果不編組,就會(huì)增加文件大小,讓相似的選擇器保持一致變得困難。只有做好這種權(quán)衡、取舍,才能每次都作出正確的決定。 
相關(guān)說明: 您可以通過電話:020-85421558 與我們聯(lián)系,我們會(huì)根據(jù)您所從事的行業(yè)領(lǐng)域和網(wǎng)站類型,在最短的時(shí)間內(nèi)請(qǐng)我們的營(yíng)銷顧問與您預(yù)約后上門拜訪您,直接面談交流為您解答所有的網(wǎng)站建設(shè)疑問。
上一篇:如何高效的學(xué)習(xí)css       下一篇:建網(wǎng)站步驟 新創(chuàng)建網(wǎng)站的基本步驟

提供全國(guó)各地網(wǎng)站建設(shè)服務(wù)

上海北京深圳廣州天津南京大連杭州沈陽成都東莞濟(jì)南佛山無錫長(zhǎng)沙武漢寧波長(zhǎng)春蘇州青島珠海大慶福州廈門常州鄭州煙臺(tái)西安合肥南寧重慶東營(yíng)昆明威海中山南昌紹興太原惠州溫州徐州揚(yáng)州淄博鎮(zhèn)江鞍山保定銀川南通洛陽嘉興臺(tái)州桂林貴陽蘭州盤錦漳州黃石唐山濰坊湘潭肇慶吉林江門?株洲泉州泰州包頭柳州德州韶關(guān)寶雞金華鹽城新鄉(xiāng)十堰廊坊玉溪濟(jì)寧滄州蕪湖湖州梧州泰安安陽遼陽舟山梅州常德三明連云港哈爾濱秦皇島馬鞍山石家莊呼和浩特

 
備案系統(tǒng)認(rèn)證 舉報(bào)不良網(wǎng)站 我們的支付方式 AAA級(jí)信用
廣州萬戶網(wǎng)絡(luò)信息科技有限公司 旗下網(wǎng)站建設(shè)品牌:萬戶網(wǎng) m.moderntrendboss.com 版權(quán)所有 ©2000-2019 All Rights Reserved
網(wǎng)站備案編號(hào):粵ICP備15049595號(hào) 地址:廣州市番禺區(qū)大石街北聯(lián)圍仔工業(yè)路2號(hào)E座305
電話:020-85421558   傳真:020-88140140   郵編:510515