DIV CSS 佈局教程網

css hack
編輯:WEB前端代碼     
由於不同的浏覽器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,對CSS的解析認識不一樣,因此會導致生成的頁面效果不一樣,得不到我們所需要的頁面效果。 這個時候我們就需要針對不同的浏覽器去寫不同的CSS,讓它能夠同時兼容不同的浏覽器,能在不同的浏覽器中也能得到我們想要的頁面效果。

這個針對不同的浏覽器寫不同的CSS code的過程,就叫CSS hack


由於不同的浏覽器對CSS的支持及解析結果不一樣,還由於CSS中的優先級的關系。我們就可以根據這個來針對不同的浏覽器來寫不同的CSS。

CSS Hack大致有3種表現形式,CSS類內部Hack、選擇器Hack以及HTML頭部引用(if IE)Hack,CSS Hack主要針對。

類內部Hack:比如 IE6能識別下劃線"_"和星號" * ",IE7能識別星號" * ",但不能識別下劃線"_",而firefox兩個都不能認識。等等

選擇器Hack:比如 IE6能識別*html .class{},IE7能識別*+html .class{}或者*:first-child+html .class{}。等等

HTML頭部引用(if IE)Hack:針對所有IE:<!--[if IE]><!--您的代碼--><![endif]-->,針對IE6及以下版本:<!--[if lt IE 7]><!--您的代碼--><![endif]-->,這類Hack不僅對CSS生效,對寫在判斷語句裡面的所有代碼都會生效。

書寫順序,一般是將識別能力強的浏覽器的CSS寫在前面。下面如何寫裡面說得更詳細些。


比如要分辨IE6和firefox兩種浏覽器,可以這樣寫:

div{
background:green; /* for firefox */
*background:red; /* for IE6 */ (both IE6 && IE7)
}

我在IE6中看到是紅色的,在firefox中看到是綠色的。

解釋一下:
上面的css在firefox中,它是認識不了後面的那個帶星號的東西是什麼的,於是將它過濾掉,不予理睬,解析得到的結果是:div{background:green},於是理所當然這個div的背景是綠色的。

在IE6中呢,它兩個background都能識別出來,它解析得到的結果是:div{background:green;background:red;},於是根據優先級別,處在後面的red的優先級高,於是當然這個div的背景顏色就是紅色的了。

CSS hack:區分IE6,IE7,firefox
區別不同浏覽器,CSS hack寫法:

區別IE6與FF:
background:orange;*background:blue;


區別IE6與IE7:
background:green !important;background:blue;

區別IE7與FF:
background:orange; *background:green;

區別FF,IE7,IE6:
background:orange;*background:green;_background:blue;
background:orange;*background:green !important;*background:blue;

注:IE都能識別*;標准浏覽器(如FF)不能識別*;
IE6能識別*;不能識別 !important;
IE7能識別*,能識別!important;
FF不能識別*,但能識別!important;
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved