瀏覽器兼容性問題是每個做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、解決兼容性方案一:
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">