我是從去年初開(kāi)始學(xué)習(xí)web標(biāo)準(zhǔn)的,兩年下來(lái)也有些心得。最近跳槽了正好閑在家里,寫一些出來(lái)和大家交流一下。
1 對(duì)于web標(biāo)準(zhǔn)和W3C XHTML規(guī)范的理解
按照習(xí)慣的理解,這兩個(gè)概念似乎都是指的一個(gè)東西(就是咱們?cè)谶@個(gè)版里討論的這些個(gè)"高深理論“^_^)。但我認(rèn)為,事實(shí)上從技術(shù)的角度上講,這兩個(gè)事物幾乎沒(méi)有任何相關(guān)性。web標(biāo)準(zhǔn)簡(jiǎn)而言之就是將頁(yè)面的結(jié)構(gòu)、表現(xiàn)和行為各自獨(dú)立實(shí)現(xiàn),更通俗的講就是如今招聘時(shí)流行的語(yǔ)言”div+css"。但W3C XHTML的任何一個(gè)版本都沒(méi)有對(duì)web標(biāo)準(zhǔn)理念作限制。很顯然的,我們可以用xhtml 1.1寫出一個(gè)table定位的網(wǎng)頁(yè)。說(shuō)到這里,或許會(huì)認(rèn)為我講了一堆廢話。但任何一項(xiàng)技術(shù),只有當(dāng)你對(duì)基礎(chǔ)概念有足夠清晰的認(rèn)識(shí)的時(shí)候,你才會(huì)正確的使用它。我從下面兩個(gè)方面,來(lái)談?wù)勅缃馱eb標(biāo)準(zhǔn)應(yīng)用走向的兩個(gè)歧途:
第一種情況很簡(jiǎn)單。自以為只要使用了XHTML+CSS就是Web標(biāo)準(zhǔn)了。頁(yè)面里面遍地是class和id。肆意的為每個(gè)細(xì)節(jié)都單獨(dú)定義class。這樣的頁(yè)面和傳統(tǒng)的html的區(qū)別就是img標(biāo)簽里多了個(gè)"/"。事實(shí)上這樣子還不如回到傳統(tǒng)的html,至少我可以輕松的使用font,而不用總是跟查字典一樣去查樣式表。另一種更隱蔽的隨意使用CSS的我在以后講。
第二種情況我覺(jué)得比較難理解一些,即試圖用各種紛繁復(fù)雜的div嵌套和css語(yǔ)句來(lái)實(shí)現(xiàn)你所想要的表現(xiàn)。很簡(jiǎn)單的一個(gè)例子就在我剛看到的一個(gè)帖子" 不用切圖的頁(yè)面圓角"。首先我想肯定的是這個(gè)創(chuàng)意確實(shí)很不錯(cuò),使用CSS功能將圓角“畫”出來(lái)。為此,設(shè)計(jì)者必須在相應(yīng)的位置加上一大段如下的代碼:
<b class="b1"></b><b class="b2"></b><b class="b3"></b><b class="b4"></b> <b class="b4"></b><b class="b3"></b><b class="b2"></b><b class="b1"></b>
但是,這里嚴(yán)重違反了Web標(biāo)準(zhǔn)的基本概念——結(jié)構(gòu)與表現(xiàn)要分離。因?yàn)樗鼘⒂糜诳刂凭W(wǎng)頁(yè)表現(xiàn)的代碼放在結(jié)構(gòu)文檔中了;蛟S你會(huì)說(shuō)它事實(shí)上還是將真正的表現(xiàn)代碼放在CSS里的。但我認(rèn)為這是一個(gè)偷換概念。因?yàn)橐陨线@些b標(biāo)簽跟網(wǎng)頁(yè)結(jié)構(gòu)無(wú)關(guān),它們都是一些空標(biāo)簽。也就是說(shuō),它的存在并不是為了將某些內(nèi)容放在文檔結(jié)構(gòu)需要的位置。因此它們對(duì)于文檔結(jié)構(gòu)來(lái)說(shuō)只是一些廢代碼。
另外一個(gè)例子可能更加隱蔽。之前我有在alistapart.com上看到過(guò)如何實(shí)現(xiàn)網(wǎng)頁(yè)三通欄的文章,其原理大概就是使用三四個(gè)div相互嵌套。我認(rèn)為這也是一個(gè)違反Web標(biāo)準(zhǔn)思想的做法。因?yàn)檫@些div標(biāo)簽在代碼中擺放的次序已經(jīng)不單純是為了結(jié)構(gòu)的需要,而是用于網(wǎng)頁(yè)的表現(xiàn)。
當(dāng)然,我承認(rèn),以上的觀點(diǎn)在一定程度是鉆牛角尖(但反過(guò)來(lái)說(shuō),非要實(shí)現(xiàn)非圖片圓角不也是在鉆牛角尖么,呵呵)。有些時(shí)候結(jié)構(gòu)和表現(xiàn)并不是那么輕易的就能分開(kāi)的,我們?yōu)榱藢?shí)現(xiàn)一些豐富的表現(xiàn)不得不讓結(jié)構(gòu)去遷就(想想<div style="clear:both" />的用處)。但是知道什么是對(duì)什么是錯(cuò)是很重要的。即使我們有時(shí)候不得不做一些錯(cuò)事。
最后,我想聲明的是,我并不是"非圖片圓角"是無(wú)意義或是錯(cuò)誤的。我也很佩服作者的聰明和靈感。我覺(jué)得這樣的技術(shù)研究就如同以前用CSS畫國(guó)旗一樣,對(duì)CSS技術(shù)的熟練掌握很有幫助。但是,它的用途也應(yīng)該僅和CSS國(guó)旗一樣局限,不應(yīng)該在實(shí)際應(yīng)用中采納。因?yàn)樗`反Web標(biāo)準(zhǔn)的基本原則。
經(jīng)典論壇討論: http://bbs.blueidea.com/thread-2699840-1-2.html
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁(yè) 下一頁(yè) HTML標(biāo)簽的語(yǔ)義
◎進(jìn)入論壇網(wǎng)頁(yè)制作、網(wǎng)站綜合版塊參加討論
|