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