我們都知道,要做WD(web designer),首先得伺侯好幾個(gè)瀏覽器:IE6,IE7,Firefox.一般的頁(yè)面,都只要求在IE6,IE7,Firefox下正常工作就行了。 
  但是實(shí)際上,瀏覽器遠(yuǎn)遠(yuǎn)不止這幾個(gè),Firefox分為Firefox 1.5,Firefox 2,Firefox 3幾個(gè)主要版本,IE7,IE6中也各有好幾個(gè)系列,另外除開(kāi)這兩個(gè)主流廠商的產(chǎn)品之外,還有Opera,Konqueror,Netscape,chrome等一系列。 
  這些瀏覽器,各有各的一套,往往在這里運(yùn)行正常,在那里運(yùn)行就不正常了。于是WD們拆東邊補(bǔ)西邊,終于能在幾個(gè)瀏覽器下都正常了。結(jié)果,產(chǎn)品經(jīng)理又有了新的需求,需要在哪兒哪兒那兒改一下,于是乎,好不容易糊弄好的的紙架子一下子倒塌了,WD們又忙得焦頭爛額。之所以這么說(shuō),因?yàn)椋@是我的經(jīng)驗(yàn)。 
  大凡是WD,總是收集了一堆Css Hacking 技巧,為的是在各個(gè)瀏覽器下正常。網(wǎng)上一搜,一大堆。 
  然而,首先WD們沒(méi)有弄清楚一個(gè)基本問(wèn)題,我們?yōu)槭裁葱枰猚ss Hacking?如果有1000種瀏覽器,我們是不是要記住1000種瀏覽器的Hack 技巧? 
  事實(shí)上, Css Hacking從某種程度上說(shuō),是一個(gè)拿不上臺(tái)面的東西。Css Hacking有很多技巧,純粹就是利用了瀏覽器的Bug.比如常見(jiàn)的用_class{….} 去區(qū)別IE和firefox,按理說(shuō)_class是一個(gè)不合法的標(biāo)記方法。Css Hacking的出現(xiàn),是WD們不得已而為之,WD們的日常工作并不是瘋狂地Css Hack. 
  其實(shí)這么多瀏覽器,并不是可以隨便亂來(lái),想自己定義個(gè)啥就定義個(gè)啥標(biāo)記的。人們習(xí)慣了在標(biāo)準(zhǔn)的世界里生活,在網(wǎng)頁(yè)世界里,也有一系列標(biāo)準(zhǔn)。瀏覽器們也都努力地做到web標(biāo)準(zhǔn)兼容。但是有些瀏覽器出道得早,可以說(shuō)后來(lái)出現(xiàn)的web標(biāo)準(zhǔn)就是在它們的影響下誕生的。還有一個(gè),當(dāng)年非常牛B,所以做了很多創(chuàng)新,沒(méi)有把web標(biāo)準(zhǔn)放在心上,蠻不在乎。更何況,標(biāo)準(zhǔn)自身也是在不斷更新的。因此,一般各個(gè)瀏覽器產(chǎn)品系統(tǒng)都曾有過(guò)一段沒(méi)有不太在乎web標(biāo)準(zhǔn)的日子,后來(lái)大家都意識(shí)到不行了,我們大家都妥協(xié)一下,要制訂一套標(biāo)準(zhǔn),大家都遵守。可是以前各家都有自己制訂的一些小條條小框框,他們不符合標(biāo)準(zhǔn),咋辦呢? 
  于是,這些人想了個(gè)法子:標(biāo)準(zhǔn)模式和怪異模式。另外還有一種,叫“近乎標(biāo)準(zhǔn)模式”,almost standard.要說(shuō)真是夠怪異,我都聽(tīng)暈了。別著急,聽(tīng)我慢慢道來(lái)。 
  不是說(shuō)了嗎,這些老大們坐在一起,制定了各式各樣的標(biāo)準(zhǔn),以后大家都按這套標(biāo)準(zhǔn)來(lái)解釋網(wǎng)頁(yè)。如果你做的網(wǎng)頁(yè)可以按這套標(biāo)準(zhǔn)來(lái)解釋,那就用一個(gè)標(biāo)記doctype注明這是可以按web標(biāo)準(zhǔn)來(lái)解釋的。這就是標(biāo)準(zhǔn)模式。 
  那以前各家都生產(chǎn)過(guò),規(guī)定過(guò)的小九九們不符合標(biāo)準(zhǔn),咋辦啊?也不能就馬上把它們?nèi)拥舨灰税?軟件上大抵有這樣一套原則,叫向下兼容。在怪異模式下,各個(gè)瀏覽器都模擬那些老版本的瀏覽器的操作,以防止老的頁(yè)面無(wú)法工作。在網(wǎng)頁(yè)沒(méi)有指定doctype時(shí),瀏覽器一般就都按怪異模式工作,以防老頁(yè)面無(wú)法工作。