術(shù)語(yǔ)匯編 深入剖析CSS hack工作原理
本文向大家描述一下CSS hack的原理以及書(shū)寫(xiě)方法,我們需要針對(duì)不同的瀏覽器去寫(xiě)不同的CSS,讓它能夠同時(shí)兼容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁(yè)面效果,這個(gè)過(guò)程就叫做CSS hack。
CSS hack簡(jiǎn)介
CSS hack由于不同的瀏覽器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,對(duì)CSS的解析認(rèn)識(shí)不一樣,因此會(huì)導(dǎo)致生成的頁(yè)面效果不一樣,得不到我們所需要的頁(yè)面效果。 這個(gè)時(shí)候我們就需要針對(duì)不同的瀏覽器去寫(xiě)不同的CSS,讓它能夠同時(shí)兼容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁(yè)面效果。這個(gè)針對(duì)不同的瀏覽器寫(xiě)不同的CSS code的過(guò)程,就叫CSS hack,也叫寫(xiě)CSS hack。
CSS Hack的原理是什么
由于不同的瀏覽器對(duì)CSS的支持及解析結(jié)果不一樣,還由于CSS中的優(yōu)先級(jí)的關(guān)系。我們就可以根據(jù)這個(gè)來(lái)針對(duì)不同的瀏覽器來(lái)寫(xiě)不同的CSS。
比如 IE6能識(shí)別下劃線"_"和星號(hào)" * ",IE7能識(shí)別星號(hào)" * ",但不能識(shí)別下劃線"_",而firefox兩個(gè)都不能認(rèn)識(shí)等等 。
書(shū)寫(xiě)順序,一般是將識(shí)別能力強(qiáng)的瀏覽器的CSS寫(xiě)在后面。下面如何寫(xiě)里面說(shuō)得更詳細(xì)些。
如何寫(xiě)CSS Hack
比如要分辨IE6和firefox兩種瀏覽器,可以這樣寫(xiě):
- <style>
- div{
- background:green; /* for firefox */
- *background:red; /* for IE6 */
- }
- </style>
我在IE6中看到是紅色的,在firefox中看到是綠色的。
解釋一下:
上面的CSS在firefox中,它是認(rèn)識(shí)不了后面的那個(gè)帶星號(hào)的東東是什么的,于是將它過(guò)濾掉,不予理睬,解析得到的結(jié)果是:div{background:green},于是理所當(dāng)然這個(gè)div的背景是綠色的。
在IE6中呢,它兩個(gè)background都能識(shí)別出來(lái),它解析得到的結(jié)果是:div{background:green;background:red;},于是根據(jù)優(yōu)先級(jí)別,處在后面的red的優(yōu)先級(jí)高,于是當(dāng)然這個(gè)div的背景顏色就是紅色的了。
【編輯推薦】