這篇文章帶給大家的內容是關於瀏覽器核心以及瀏覽器相容的問題分析,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
Rendering Engine,中文翻譯過來名稱很多,排版引擎、解譯引擎、渲染引擎,現在流行稱為瀏覽器核心。用來渲染網頁內容的,將網頁的內容和排版程式碼轉換為可視的頁面,一個瀏覽器可能不只一個核心。
(1)Trident(Windows)360 IE
(2)Gecko(跨平台)Mozilla Firefox、Mozilla SeaMonkey
(3)KHTML(Linux )Konqueror
(4)WebKit(跨平台)Apple Safari、Symbian系統瀏覽器
(5)Chromium(跨平台) Chromium、Google Chrome、SRWare Iron、Comodo Dragon
(6)Presto(跨平台)Opera
瀏覽器 | 核心 |
---|---|
IE、百度、世界之窗 | Trident |
chrome、opera | chromium或稱為Blink |
IE chromium | |
Gecko | |
Webkit | |
trident webkit |
(1)Chakra
查克拉,IE9啟用的新的JavaScript引擎。
(2)SpiderMonkey/TraceMonkey/JaegerMonkey
SpiderMonkey應用程式在Mozilla Firefox 1.0-3.0,TraceMonkey應用程式在Mozilla Firefox 3.5-3.6版本,JaegerMonkey應用程式在Mozilla Firefox 4.0及後續的版本。
(3)V8
應用於Chrome、傲遊3。
(4)Nitro
應用於Safari 4及後續的版本。
(5)Linear A/Linear B/Futhark/Carakan
Linear A應用於Opera 4.0-6.1版本,Linear B應用於Opera 7.0~9.2版本,Futhark應用於Opera 9.5-10.2版本,Carakan應用於Opera 10.5及後續的版本。
(6)KJS
KHTML對應的JavaScript引擎。
(1)Trident/Gecko雙核心瀏覽器
(2)Trident/WebKit雙核心瀏覽器
現在國內最主流的「雙核心」瀏覽器基本上都是這個架構,360極速瀏覽器、世界之窗瀏覽器極速版、傲遊3搜狗瀏覽器3、QQ瀏覽器、楓樹瀏覽器、快快瀏覽器、百度瀏覽器、阿雲瀏覽器(後製版本)、太陽花瀏覽器,其中最奇葩的是傲遊3。其它雙核心瀏覽器都是基於Chromium的,而傲遊是基於WebKit的,但是偏偏又用的是V8引擎。
(3)Trident/Gecko/WebKit三核心瀏覽器
目前能見度的應該是日本的Lunascape,Avant增加了WebKit核心之後也會歸類到這裡。說實話,Lunascape真的很難用,真的很奇葩。各個核心相對獨立,外殼本身不夠強化,穩定性不高,所以不如用回單核心瀏覽器。
對瀏覽器相容問題,一般分,HTML,Javascript相容,CSS相容。其中html相關問題比較容易處理,無非是高版本瀏覽器用了低版本瀏覽器無法辨識的元素,導致其無法解析,所以平常注意一點就是。特別是HTML5增加了許多新標籤,低版瀏覽器有點影響時代進步啊
(1) 不同瀏覽器的margin和padding的預設值差距大,使用*{margin:0px;padding:0px;}
(2)ie6、7和遨遊裡這個標籤的高度不受控制,超出自己設定的高度.在此標籤中加入overflow:hidden
( 3)圖片預設有間距,使用float
(4)盒子崩塌,父元素加入(overflow:hidden;)變成BFC元素
(5)字體大小在不同瀏覽器裡不一致,使用line-height :14px;指定高度
(6)IE6 不支援png 透明效果
(7)CSS Hack相容性屬性設定
HTML 篇
(1)樣式相容性問題
(2)怪異模式
怪異模式是沒有遵守W3C 規範的一種相容模式,其中的width 是包含contentWidth, 左右padding, 左右border 在內的全部範圍(height 也是一樣),類似box-sizing: border-box;,而且table 的font-size 不能從父元素繼承。以下情況會觸發瀏覽器怪異模式(Quirks Mode):
沒寫DOCTYPE 觸發怪異模式
在前加, IE6 下方會觸發怪異模式
在前加入, IE7進入怪異模式
前有任何非空字符,會在IE6 下會觸發怪異模式
前有XML ,在IE7 下不會觸發怪異模式,但不能有其他非空白字元
檢查document.compatMode,可以查看瀏覽器工作在哪個模式:值BackCompat為怪異模式,值CSS1Compat為標準模式
#(3)display :inline-block 元素間有間隙
<!-- 以下的 li 元素是 display: inline; 类型的 --> <!-- 这样写元素之间有间隙 --> <ul> <li>apple</li> <li>banana</li> <li>pineapple</li> <li>peach</li> <li>orange</li> </ul> <!-- 换个写法解决问题--> <ul> <li>apple</li><li> banana</li><li> pineapple</li><li> peach</li><li> orange</li> </ul>
(4)IE可能出現的文件樣式短暫失效問題
<head> <!-- meta部分 --> <title></title> <!-- 可能的script部分 --> <script type="text/javascript"></script> <!-- 关键:添加一个空标签 --> <!-- link部分 --> </head>
相關推薦:
js判斷瀏覽器版本以及瀏覽器核心的方法_javascript技巧
以上是瀏覽器內核以及瀏覽器相容的問題分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!