摘要:與此同時(shí),文件維護(hù)和組織的考驗(yàn)也隨之而來。現(xiàn)在建立新網(wǎng)站時(shí),必須花點(diǎn)時(shí)間好好籌劃怎么組織和架構(gòu)。我認(rèn)為組織規(guī)劃的重要性堪比網(wǎng)站目錄結(jié)構(gòu)。假如一個(gè)網(wǎng)站的首頁(yè)子頁(yè)面和組合頁(yè)設(shè)計(jì)不同,就可以采用基于原型的策略。
(收藏自技術(shù)狂)
架構(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)。(注:用詞夸張一點(diǎn),讓你加深記憶) 沒有哪種方案放之四海而皆準(zhǔn),因此我們會(huì)討論一些基本的組織方案,以及它們各自的利弊。
主CSS文件通常可以使用一個(gè)主css文件,來放置所有頁(yè)面共享的規(guī)則。這個(gè)文件會(huì)包含默認(rèn)的字體、鏈接、頁(yè)眉和其他等樣式。有了主css文件之后,我們開始探討高級(jí)組織策略。
方法一:基于原型最基本的策略是基于原型頁(yè)面(archetype page)分離css文件。假如一個(gè)網(wǎng)站的首頁(yè)、子頁(yè)面和組合頁(yè)設(shè)計(jì)不同,就可以采用基于原型的策略。(這種策略下)每個(gè)頁(yè)面都會(huì)有專屬的css文件。
在原型數(shù)量不多的情況下,這個(gè)方法簡(jiǎn)單明了、行之有效。然而,當(dāng)頁(yè)面元素并不按部就班的位于各個(gè)原型頁(yè)時(shí),問題就出現(xiàn)了。如果子頁(yè)面和組合頁(yè)共享某些元素,而首頁(yè)卻沒有,我們應(yīng)該怎么做呢?
把共享元素放入主css文件。這雖不是最純正的解決辦法,卻適用于某些具體情況??墒侨绻W(wǎng)站龐大,(這樣做的話)主css文件會(huì)迅速膨脹——這就違背了分離文件的初衷:避免導(dǎo)入不必要的大文件。
在組合頁(yè)和子頁(yè)面的css文件里各放一份樣式代碼。(這么做)就意味著要維護(hù)冗余代碼,很顯然我們不想這樣。
創(chuàng)建一個(gè)新的文件,由這兩種頁(yè)面共享。這聽起來不錯(cuò)。不過假如只有10行代碼,我們創(chuàng)建這個(gè)文件僅僅是為了共享這10行代碼?(注:殺雞用牛刀?) 這方法很純粹,但如果網(wǎng)站龐大有很多對(duì)頁(yè)面共享很少量元素時(shí)(注:比如30對(duì)頁(yè)面分別共享10行代碼),就顯得很笨重了。
創(chuàng)建一個(gè)多帶帶的css文件,包含所有共享元素的樣式。這方法可能比較簡(jiǎn)單,卻要取決于網(wǎng)站的大小和共享元素的多少。有種情況會(huì)很煩:導(dǎo)入了一個(gè)很大的css文件,但頁(yè)面只用到一小部分樣式——還是那句話,這違背了分離文件的初衷。
這就是我所說的重疊的兩難(overlap dilemma)。零碎css規(guī)則的重疊不一而足,并沒有一個(gè)完全清晰無誤的方案來組織它們。
如果網(wǎng)站使用服務(wù)器端include,這個(gè)方法會(huì)很不錯(cuò)。舉例說明,如果使用頁(yè)眉include,它會(huì)有自己相應(yīng)的css文件。頁(yè)腳或者其他部分的include可以如法炮制,只須導(dǎo)入自己的css文件。這個(gè)方法簡(jiǎn)單干凈,不過可能會(huì)產(chǎn)生很多小css文件。
舉例來說,假如頁(yè)腳的樣式只需要20行css代碼,多帶帶創(chuàng)建一個(gè)文件就劃不來了。而且這個(gè)方法會(huì)導(dǎo)致每個(gè)頁(yè)面都包含一堆css文件——因?yàn)橛卸嗌賗nclude,就得有多少css文件。
這個(gè)方案直觀實(shí)際,與前一個(gè)類似。如果網(wǎng)站共有30個(gè)頁(yè)面,其中10個(gè)含有form,那么可以創(chuàng)建一個(gè)css文件專門處理form的樣式,只在這10個(gè)頁(yè)面導(dǎo)入它。如果另外10個(gè)頁(yè)面含有table,就創(chuàng)建一個(gè)文件專門處理table樣式……諸如此類。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/110998.html
摘要:與此同時(shí),文件維護(hù)和組織的考驗(yàn)也隨之而來。現(xiàn)在建立新網(wǎng)站時(shí),必須花點(diǎn)時(shí)間好好籌劃怎么組織和架構(gòu)。我認(rèn)為組織規(guī)劃的重要性堪比網(wǎng)站目錄結(jié)構(gòu)。假如一個(gè)網(wǎng)站的首頁(yè)子頁(yè)面和組合頁(yè)設(shè)計(jì)不同,就可以采用基于原型的策略。 (收藏自技術(shù)狂) 架構(gòu)CSS 在當(dāng)前瀏覽器普遍支持的前提下,css被我們賦予了前所未有的使命。然而依賴css越多,樣式表文件就會(huì)變得越大越復(fù)雜。與此同時(shí),文件維護(hù)和組織的考驗(yàn)也隨...
摘要:前言不要再叫我切圖崽,我很生氣,這樣很不禮貌,請(qǐng)叫我前端工程師從方面來說,前端工程師和切圖崽的區(qū)別,并不是指寫單條技巧的高低,甚至很多工程師在一些的奇技淫巧都比不上切圖崽那切圖崽到底和工程師之間的差別是什么呢差別是年工作經(jīng)驗(yàn)視野,是格局,是 前言 不要再叫我切圖崽,我很生氣,這樣很不禮貌,請(qǐng)叫我前!端!工!程!師! 從css方面來說,前端工程師和切圖崽的區(qū)別,并不是指寫單條css技巧的...
摘要:可能很多人和我一樣首次聽到前端架構(gòu)這個(gè)詞第一反應(yīng)是前端還有架構(gòu)這一說呢在后端開發(fā)領(lǐng)域系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵因此架構(gòu)師備受重視早在開發(fā)工作啟動(dòng)之前他們就被邀請(qǐng)加入到項(xiàng)目中而且他們會(huì)跟客戶討論即將建成的平臺(tái)的架構(gòu)要求使用還什么技術(shù)棧內(nèi)容類型 可能很多人和我一樣, 首次聽到前端架構(gòu)這個(gè)詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說呢? 在后端開發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵, 因此架構(gòu)師備...
摘要:可能很多人和我一樣首次聽到前端架構(gòu)這個(gè)詞第一反應(yīng)是前端還有架構(gòu)這一說呢在后端開發(fā)領(lǐng)域系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵因此架構(gòu)師備受重視早在開發(fā)工作啟動(dòng)之前他們就被邀請(qǐng)加入到項(xiàng)目中而且他們會(huì)跟客戶討論即將建成的平臺(tái)的架構(gòu)要求使用還什么技術(shù)棧內(nèi)容類型 可能很多人和我一樣, 首次聽到前端架構(gòu)這個(gè)詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說呢? 在后端開發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵, 因此架構(gòu)師備...
閱讀 3108·2021-11-19 09:40
閱讀 1569·2021-11-15 11:39
閱讀 686·2021-10-08 10:05
閱讀 2281·2021-09-03 10:29
閱讀 3414·2021-08-12 13:22
閱讀 2180·2019-08-30 15:54
閱讀 3721·2019-08-30 14:03
閱讀 2663·2019-08-30 13:45