這個時候我們就需要針對不同的瀏覽器去寫不同的CSS,讓它能夠同時兼容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁面效果。這個針對不同的瀏覽器寫不同的CSS code的過程,就叫CSS hack,也叫寫CSS hack。
由于不同的瀏覽器對CSS的支持及解析結(jié)果不一樣,還由于CSS中的優(yōu)先級的關(guān)系。我們就可以根據(jù)這個來針對不同的瀏覽器來寫不同的CSS。
比如 IE6能識別下劃線"_"和星號" * ",IE7能識別星號" * ",但不能識別下劃線"_",而firefox兩個都不能認(rèn)識。等等
書寫順序,一般是將識別能力強(qiáng)的瀏覽器的CSS寫在后面。下面列舉常用的CSS hack方法
CSS書寫技巧-1:!important
!important作用是提高指定樣式規(guī)則的應(yīng)用優(yōu)先權(quán)。
IE7以及所有標(biāo)準(zhǔn)瀏覽器能識別!important
區(qū)別IE6與IE7與其他瀏覽器
- .browserTest
- {
- border:20pxsolid#60A179!important;
- border:20pxsolid#00F;
- }
在Mozilla中或者IE7瀏覽時候,能夠理解!important的優(yōu)先級,因此顯示#60A179的顏色:
在IE6中瀏覽時候,不能夠理解!important的優(yōu)先級,因此顯示#00F的顏色:
CSS書寫技巧-2:*
IE都能識別*;標(biāo)準(zhǔn)瀏覽器(如火狐)不能識別*
區(qū)別IE6與火狐
- .browserTest
- {
- border:20pxsolid#60A179;
- *border:20pxsolid#00F;
- }
區(qū)別IE7與火狐
- .browserTest
- {
- border:20pxsolid#60A179;
- *border:20pxsolid#00F;
- }
區(qū)別IE7,IE6與火狐
- .browserTest
- {
- border:20pxsolid#60A179;
- *border:20pxsolid#00F!important;
- *border:20pxsolid###;
- }
CSS書寫技巧-3:_
IE6支持下劃線,IE7和firefox均不支持下劃線
區(qū)別IE7,IE6與火狐
- .browserTest
- {
- border:20pxsolid#60A179;
- *border:20pxsolid#00F;
- _border:20pxsolid###;
- }
- /*不管是什么方法,書寫的順序都是firefox的寫在前面,IE7的寫在中間,IE6的寫在最后面*/
CSS書寫技巧-4:*+html 與 *html
*+html 與 *html 是IE特有的標(biāo)簽, firefox 暫不支持.而*+html 又為 IE7特有標(biāo)簽
- .browserTest{width:120px;}/*FireFoxfixed*/
- *html.browserTest{width:80px;}/*ie6fixed*/
- *+html.browserTest{width:60px;}/*ie7fixed*/
注意:
*+html 對IE7的HACK 必須保證HTML頂部有如下聲明: