1. 程式人生 > >解決web頁面瀏覽器相容性問題

解決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">