要是XHTML與CSS能面向?qū)ο。。太陽?yīng)該從北邊升起了。但是,凡事都應(yīng)該帶著OO的思想來看問題,也勉強(qiáng)可以湊數(shù)拉。其實(shí),早在零幾年就有人提出了OO-style,不過已找不到。
那要怎樣OO呢?現(xiàn)在大家都知道CSS是可以介樣寫滴:
.G_G { /* xxxxxx */ }
我們可以把它大約看一個原型,或者說成類,-__-b 好像本來就是類的樣子,然后要在HTML里“實(shí)例化”一個對象,例如:
<div class="G_G">笨蛋嗷嗷</div>
該元素會使用上CSS相應(yīng)的定義,但僅僅對應(yīng)的class還是不夠的,因?yàn)槲覀冺撁婵赡軙嗵帒?yīng)用到這個class,為了處理好“私有”的關(guān)系,把剛才的代碼改成:
<div id="aoao" class="G_G">笨蛋嗷嗷</div>
這樣的話,這個ID為aoao的元素就會應(yīng)用.G_G這個類的定義,而且可以用#aoao{}這樣的選擇符來進(jìn)去私有效果的定義,這樣也不會影響到公共用的.G_G這個類,同時,#aoao定義的優(yōu)先權(quán)會比.G_G高,符合私有定義比公共定義優(yōu)先高的常理^^。
由于我使用了ID這個具有唯一性的東東,對這種私有定義后的東西復(fù)用就成了問題(一個ID只能在一個頁面上出現(xiàn)一次,不知道誰說的,反正是真理)。如果我們要實(shí)現(xiàn)多相同私有化的東東怎辦呢?那我們就必須來實(shí)現(xiàn)“多態(tài)”。挖哈哈。再改一下代碼:
<div class="G_G o_O">笨蛋嗷嗷</div>
一個是“G_G”,另一個是“o_O”,但是我們?nèi)绻褂蒙?o_O{}也是可以定義到元素,假如CSS是這樣的話:
.G_G {width:100%} .o_O {color:#123456}
元素將都被定義到,而且由于定義不層疊,都會給應(yīng)用。再假如代碼是這樣的話,不知道會不會更好理解。
<div class="layout color">不是笨蛋嗷嗷鳥</div>
.layout{width:100%} .color{color:#123456}
接著,要來實(shí)現(xiàn)“封裝”。子級選擇符大家應(yīng)該常常用吧,換代碼:
<div class="G_G"><span class="bendan">笨蛋</span>嗷嗷</div>
雖然.bendan{}跟.G_G .bendan{}都可以定義,但是后者只能應(yīng)用在class為“G_G”的元素,我們可以簡單把.bendan{}理解成全局定義,把.G_G .bendan{}理解成局部定義,這樣的話就有利于我們XHTML與CSS的模塊化。^^傳說中的“封裝”出現(xiàn)了,再接著。
<div id="aoao" class="G_G o_O"><span class="bendan">笨蛋</span>嗷嗷</div>
這樣的代碼就可以產(chǎn)生無數(shù)的變化了,還不明白的從頭看起。^
其實(shí),這些跟真正的面向?qū)ο筮有很大一段距離,我只是在學(xué)標(biāo)題黨,不過可以用它來理解ID與class的應(yīng)用。
經(jīng)典論壇討論: http://bbs.blueidea.com/thread-2823647-1-1.html
本文鏈接:http://www.95time.cn/tech/web/2008/5275.asp
出處:藍(lán)色理想
責(zé)任編輯:moby
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|