瀏覽器市場的混亂,給設計師造成很大的麻煩,設計的頁面相容完這個瀏覽器還得相容那個瀏覽器,本來IE6跟Firefox之間的相容是很容易解決的。加上個IE7會麻煩點,IE8的出現就更頭疼了,原來hackIE7的方法又不能用了,怎麼辦呢。
第一種方法:
還好,微軟提供了這樣一個代碼:
<metahttp-equivmetahttp-equiv="x-ua-compatible"content="IE=7"/>
把這段代碼放到<head>裡面,在IE8裡面的頁面解析起來就跟IE7一模一樣的了,所以,基本上可以無視IE8,剩下的代碼只需要這樣寫就可以了
background:#Firefoxc;/*對Firefox有效*/ *background:#ccc;/*對IE7有效*/ _background:#000;/*只對IE6有效*/
解釋一下吧:
Firefox能解析第一段,後面的兩個因為前面加了特殊符號“*”和“_”,Firefox認不了,所以只認background:#Firefoxc,看到的是黃顏色;
IE7前兩短都能認,以最後的為準,所以最後解析是background:#ccc,看到的是灰色;
IE6三段都能認,而且“_”這個只有IE6能認,所以最後解析是_background:#000,看到的是黑色
已經是最簡單和最好理解的寫法了,如果你是google進來的,我可以很負責任的告訴你,這種方法是ok的,我測試過。
IE8的那段相容7的代碼我也測試過了,在我現在的windos7測試版所帶的IE8是沒問題的,以後IE8正式版出來還管不管用就不知道了。
ps:如果你發現按我這樣寫還是有問題的話,請查看一下你的html頭,看看<head>之前的內容是不是這樣的標準寫法:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml">
這個是現在比較規範的寫法,如果你是用dreamweaver做頁面的話,預設也是這種規範的,切記,非這種規範寫法的,相容性不能保證
第二種方法:
要求苛刻的朋友是不願意在頁面頭部增加<metahttp-equiv="x-ua-compatible"content="IE=7"/>這樣一句代碼的,因為這樣的結果是每個頁面都得加。那麼要想相容這幾個瀏覽器還真得想別的辦法了。早些天本站發布了一篇《完美相容IE6,IE7,IE8以及Firefox的css透明濾鏡》,可能當時測試的疏忽,IE8的相容性沒有解決好,好多朋友回複說用不了。今天抽出些時間,查閱大量資料,終於解決了這個問題了。
以下是相容IE6/IE7/IE8/Firefox的寫法,注意下面的順序不可顛倒
margin-bottom:40px;/*Firefox的屬性*/ margin-bottom:140px\9;/*IE6/7/8的屬性*/ color:red\0;/*IE8支援*/ *margin-bottom:450px;/*IE6/7的屬性*/