在網站開發和學習中,由於各種兼容性問題,讓開發者挺煩惱的,我的學員也經常因為兼容問題來找我取經。
事實上,IE給出了解決方案,谷歌給出了解決方案,國內著名網站百度也將這個解決方案應用於IE的兼容性問題。
要解決這個兼容性問題只需要一行代碼,首先看看百度主頁解決代碼兼容性的問題。
百度首頁源代碼如下:
<!Doctype html> <html xmlns=http://www.w3.org/1999/xhtml xmlns:bd=http://www.baidu.com/2010/xbdml> <head> <meta http-equiv="Content-Type" content=“text/html;charset=utf-8″> <META http-equiv="X-UA-Compatible" content=IE=Edge> <title>百度一下,你就知道 </title>
這句話的意思是強制使用Edge模式來解析網頁代碼!
幾種IE使用模式:
1.強制使用IE5模式來解析
<meta http-equiv=“X-UA-Compatible” content=“IE=5″>
2.強制使用IE6模式來解析
<meta http-equiv=“X-UA-Compatible” content=“IE=6″>
3.強制使用IE7模式來解析的兩種方式
<meta http-equiv=“X-UA-Compatible” content=“IE=EmulateIE7″>2 <meta http-equiv=“X-UA-Compatible” content=“IE=7″>
強制使用IE8模式來解析
<meta http-equiv=“X-UA-Compatible” content=“IE=8″>
5. Google Chrome Frame也可以讓IE用上Chrome的引擎:
<meta http-equiv=“X-UA-Compatible” content=“chrome=1″/>
6.如果一個特定版本的IE支持所要求的兼容性模式多於一種,如下代碼就是IE5和IE8兩種模式:
<meta http-equiv=“X-UA-Compatible” content=“IE=5; IE=8″/>
7.默認使用Google Chrome Frame進行渲染,如果沒有安裝gcf則使用IE的最新內核來渲染
< meta http-equiv = "X-UA-Compatible" content ="IE=edge,chrome=1" />
除此之外,我們還可以設定網站服務器以指定預設兼容性模式
如果服務器是自己的話,您可以在服務器上定義一個自定義標頭,以便為其網站指定特定的文件兼容性模式。這個特定的方法取決於你的網站服務器。下面的Web.config文件使微軟Internet信息服務(IIS)來定義一個自定義頁眉自動使用IE7模式編譯所有的頁面。
有另外的解決方案,在谷歌的IE7–JS是一個JavaScript庫(JS庫,解決了IE與W3C標准之間的沖突),使微軟的Internet Explorer表現得像一個Web兼容的瀏覽器,支持更多的W3C標准,支持CSS2,CSS3選擇器。它修復了大量的HTML和CSS的問題,使透明的PNG正確顯示IE5和IE6下。
以下為google code的代碼地址。
使IE5,IE6兼容到IE7模式
<!–[if lt IE 7]><script src=” http://ie7-js.googlecode.com/svn/version/2.0(beta)/IE7.js ” type=”text/javascript”></script><![endif]–>
使IE5,IE6,IE7兼容到IE8模式
<!–[if lt IE 8]><script src=” http://ie7-js.googlecode.com/svn/version/2.0(beta)/IE8.js ” type=”text/javascript”></script><![endif]–>
使IE5,IE6,IE7,IE8兼容到IE9模式
<!–[if lt IE 9]><script src=” http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js ”></script><![endif]–>
那么怎么解決解決PNG顯示問題,只需將透明的PNG圖片命名為*;,美中不足的是,這種方法不能發揮背景瓷磚(背景重復)和背景(背景位置)的作用默認會占滿整個容器。當然你也可以使用《IE6 PNG透明終極解決方案 》中所講的方法。
還有一種有趣的方法
創建html5時發現這么一句話,如下:
<meta http-equiv=”X-UA-Compatible” content=”IE=edge,chrome=1″/>
這樣寫可以達到的效果是如果安裝了GCF(Google Chrome Frame 谷歌內嵌瀏覽器框架的簡稱),然后使用GCF渲染頁面,如果你沒有在IE瀏覽器中安裝有,也可以使用IE內核的最高版本進行渲染。這個插件允許用戶的IE瀏覽器看起來一樣,但在瀏覽網頁時,用戶實際上使用的是谷歌瀏覽器瀏覽器內核,支持IE瀏覽器的多個版本,如IE6,7, 8,等。