解決web頁面瀏覽器相容性問題
瀏覽器相容性問題是每個做web頁面常常遇到的問題,而且還不得不解決的問題。造成這種局面的主要原因就是各大公司都推出自己的瀏覽器,而他們在某些方面的規範還不一樣。
我們現在常用的瀏覽器核心有:
Trident:這是微軟開發的一種排版引擎。該核心程式在1997年的IE4中首次被採用,是微軟在Mosaic程式碼的基礎之上修改而來的,並沿用到目前的 IE7。Trident實際上是一款開放的核心,其介面核心設計的相當成熟,因此才有許多采用IE核心而非IE的瀏覽器湧現(如 Maxthon、The
World 、TT、GreenBrowser、AvantBrowser等)。
自從釋出後,Trident不斷地被更新和完善:
Trident II(IE5)——增進對CSS1.0的支援及對CSS2重大的變更;
Trident III(IE5.5)——修正部分CSS的排版控制;
Trident IV(IE6)——修正了一部分box-model的錯誤以及增加了“相容模式(Quirks Mode)”切換功能,以增加對檔案型別描述(Document Type Definition,DTD)的支援;
Trident V(IE7)——修正許多CSS排版處理上的錯誤以及增加對PNG格式alpha通道(半透明)的支援。
Geckos:是套開放原始碼的、以C++編寫的網頁排版引擎。這軟體原本是由網景通訊公司開發的,Netcape6開始採用該核心。後來的 Mozilla FireFox也採用了該核心,Geckos的特點是程式碼完全公開,因此,其可開發程度很高,全世界的程式設計師都可以為其編寫程式碼,增加功能。Geckos 現在由Mozilla基金會維護。
Presto:是一個由Opera Software開發的瀏覽器排版引擎,該核心在2003年的Opera7中首次被使用,該款引擎的特點就是渲染速度的優化達到了極致,也是目前公認網頁瀏覽速度最快的瀏覽器核心。
Webkit:蘋果公司自己的核心,也是蘋果的Safari瀏覽器使用的核心。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是從KDE的KHTML及KJS引擎衍生而來,它們都是自由軟 件,在GPL條約下授權,同時支援BSD系統的開發。所以Webkit也是自由軟體,同時開發原始碼。在安全方面不受IE、Firefox的制約,所以 Safari瀏覽器在國內還是很安全的。
簡單的總結一下:
使用Trident核心的瀏覽器:IE、Maxthon、TT、The World等;
使用Gecko核心的瀏覽器:Netcape6及以上版本、FireFox、MozillaSuite/SeaMonkey;
使用Presto核心的瀏覽器:Opera7及以上版本;
使用Webkit核心的瀏覽器:Safari、Chrome。
另外:
現在我們很多瀏覽器都推出多核瀏覽器,像360,搜狗等就有適應ie的Trident核心 和google的Webkit核心。
針對多核瀏覽器不同模式在顯示網頁時可能會產生不同的效果。
1、解決相容性方案一:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7; IE=EmulateIE9"> 這個的意思主要就是要瀏覽器使用ie7或者ie7以上的版本進行解析網頁。2、解決相容性方案一二:
<html>
<head>
<meta name="renderer" content="webkit|ie-comp|ie-stand">
</head>
<body>
</body>
</html>
content的取值為webkit,ie-comp,ie-stand之一,區分大小寫,分別代表用webkit核心,IE相容核心,IE標準核心。
若頁面需預設用極速核,增加標籤:<meta name="renderer" content="webkit">
若頁面需預設用ie相容核心,增加標籤:<meta name="renderer" content="ie-comp">
若頁面需預設用ie標準核心,增加標籤:<meta name="renderer" content="ie-stand">