由于不同瀏覽器所遵循的標準也有所不同,再加上不可避免的程序bug、經濟利益等因素的干擾。同樣的網頁代碼(HTML + CSS),在不同瀏覽器上的顯示效果卻略有不同,甚至大有不同。即使是同一個瀏覽器,其不同版本的顯示效果也有所不同,尤其是IE。這就給網頁前端設計人員帶來了很大的困擾。開發人員必須兼顧考慮到所有主流的瀏覽器,才能在不同的瀏覽器上顯示出相同或滿足需要的效果。于是CSS Hack技術就誕生了。
CSS Hack技術,就是利用不同瀏覽器不同版本之間的CSS實現的特性差異,來滿足我們需要的效果:在所有主流瀏覽器上顯示統一的效果,或者為特定瀏覽器顯示特定的效果。
眾所周知,如果在一個css樣式選擇器中存在兩個名稱相同的屬性,瀏覽器一般會以最后面的屬性為準。
當然,這里有個前提,那就是瀏覽器首先得能夠識別并支持該css屬性,對于瀏覽器不支持的css屬性或值,瀏覽器將一律將其忽略。
這就是CSS Hack技術的實現原理。例如:即使我們在屬性名稱前面加上一個下劃線_,IE 6 照樣可以識別該屬性,而且只有IE 6可以識別。因此,我們就可以利用這個特性,讓IE 6實現某些特定的效果。
再者如,由于IE 6不支持max-width屬性,但是IE6的css屬性值支持expression表達式。因此,我們可以為IE 6 折中實現max-width的屬性效果。
新聞熱點
疑難解答