?Rendering Engine,中文翻譯過來名稱很多,排版引擎、解釋引擎、渲染引擎,現(xiàn)在流行稱為瀏覽器內(nèi)核。 用來渲染網(wǎng)頁(yè)內(nèi)容的,將網(wǎng)頁(yè)的內(nèi)容和排版代碼轉(zhuǎn)換為可視的頁(yè)面,一個(gè)瀏覽器可能不止有一個(gè)內(nèi)核。
(1)Trident(Windows)360 IE
(2)Gecko(跨平臺(tái))Mozilla Firefox、Mozilla SeaMonkey
(3)KHTML(Linux)Konqueror
(4)WebKit(跨平臺(tái))Apple Safari、Symbian系統(tǒng)瀏覽器
(5)Chromium(跨平臺(tái)) Chromium、Google Chrome、SRWare Iron、Comodo Dragon
(6)Presto(跨平臺(tái))Opera
瀏覽器 | 內(nèi)核 |
---|---|
IE、百度、世界之窗 | Trident |
chrome、opera | chromium或稱Blink |
360、獵豹、2345瀏覽器 | IE+chromium |
Firefox | Gecko |
Safari | Webkit |
搜狗、遨游、QQ瀏覽器 | trident+webkit |
(1)Chakra
查克拉,IE9啟用的新的JavaScript引擎。
(2)SpiderMonkey/TraceMonkey/JaegerMonkey
SpiderMonkey應(yīng)用在Mozilla Firefox 1.0-3.0,TraceMonkey應(yīng)用在Mozilla Firefox 3.5-3.6版本,JaegerMonkey應(yīng)用在Mozilla Firefox 4.0及后續(xù)的版本。
(3)V8
應(yīng)用于Chrome、傲游3。
(4)Nitro
應(yīng)用于Safari 4及后續(xù)的版本。
(5)Linear A/Linear B/Futhark/Carakan
Linear A應(yīng)用于Opera 4.0-6.1版本,Linear B應(yīng)用于Opera 7.0~9.2版本,F(xiàn)uthark應(yīng)用于Opera 9.5-10.2版本,Carakan應(yīng)用于Opera 10.5及后續(xù)的版本。
(6)KJS
KHTML對(duì)應(yīng)的JavaScript引擎。
(1)Trident/Gecko雙核瀏覽器
(2)Trident/WebKit雙核瀏覽器
現(xiàn)在國(guó)內(nèi)最主流的“雙核”瀏覽器基本都是這個(gè)架構(gòu),360極速瀏覽器、世界之窗瀏覽器極速版、傲游3搜狗瀏覽器3、QQ瀏覽器、楓樹瀏覽器、快快瀏覽器、百度瀏覽器、阿云瀏覽器(后期版本)、太陽花瀏覽器,其中最奇葩的是傲游3。其它雙核瀏覽器都是基于Chromium的,而傲游是基于WebKit的,但是偏偏又用的是V8引擎。
(3)Trident/Gecko/WebKit三核瀏覽器
目前能見的應(yīng)該就是日本的Lunascape,Avant增加了WebKit內(nèi)核之后也會(huì)歸類到這里。說實(shí)話,Lunascape真的很難用,真的很奇葩。各個(gè)內(nèi)核相對(duì)獨(dú)立,外殼本身不夠強(qiáng)化,穩(wěn)定性不高,所以還不如用回單核瀏覽器。
對(duì)瀏覽器兼容問題,一般分,HTML,Javascript兼容,CSS兼容。 其中html相關(guān)問題比較容易處理,無非是高版本瀏覽器用了低版本瀏覽器無法識(shí)別的元素,導(dǎo)致其不能解析,所以平時(shí)注意一點(diǎn)就是。特別是HTML5增加了許多新標(biāo)簽,低版本瀏覽器有點(diǎn)影響時(shí)代進(jìn)步啊
(1) 不同瀏覽器的margin和padding的默認(rèn)設(shè)置差距大,使用*{margin:0px;padding:0px;}
(2)ie6、7和遨游里這個(gè)標(biāo)簽的高度不受控制,超出自己設(shè)置的高度.在此標(biāo)簽中加入overflow:hidden
(3)圖片默認(rèn)有間距,使用float
(4)盒子坍塌,父元素加入(overflow:hidden;)變成BFC元素
(5)字體大小在不同瀏覽器里不一致,使用line-height:14px;指定高度
(6)IE6 不支持 png 透明效果
(7)CSS Hack兼容性屬性設(shè)置
HTML 篇
(1)樣式兼容性問題
<!-- IE 按 Edge 模式渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<!-- IE 8 9 10 按 IE7 模式渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=Emulate7" />
(2)怪異模式
怪異模式是沒有遵守 W3C 規(guī)范的一種兼容模式,其中的 width 是包括 contentWidth, 左右padding, 左右border 在內(nèi)的全部范圍(height 也一樣),類似于 box-sizing: border-box;,而且 table 的 font-size 不能從父元素繼承。以下情況會(huì)觸發(fā)瀏覽器怪異模式(Quirks Mode):
沒寫 DOCTYPE 觸發(fā)怪異模式
在<!DOCTYPE ...>前加<?xml version="1.0" encoding="utf-8" ?>, IE6 下會(huì)觸發(fā)怪異模式
在<!DOCTYPE ...>前加入<!-- keep IE7 in Quirks Mode -->, IE7進(jìn)入怪異模式
<!DOCTYPE ...>前有任何非空字符,會(huì)在IE6 下會(huì)觸發(fā)怪異模式
<!DOCTYPE ...>前有 XML ,在IE7 下不會(huì)觸發(fā)怪異模式,但不能有其他非空字符
檢查document.compatMode,可以查看瀏覽器工作在哪個(gè)模式:值BackCompat為怪異模式,值CSS1Compat為標(biāo)準(zhǔn)模式
(3)display:inline-block 元素間有間隙
<!-- 以下的 li 元素是 display: inline; 類型的 --> <!-- 這樣寫元素之間有間隙 --> <ul> <li>apple</li> <li>banana</li> <li>pineapple</li> <li>peach</li> <li>orange</li> </ul> <!-- 換個(gè)寫法解決問題--> <ul> <li>apple</li><li> banana</li><li> pineapple</li><li> peach</li><li> orange</li> </ul>
(4)IE可能出現(xiàn)的文檔樣式短暫失效問題
<head> <!-- meta部分 --> <title></title> <!-- 可能的script部分 --> <script type="text/javascript"></script> <!-- 關(guān)鍵:添加一個(gè)空標(biāo)簽 --> <!-- link部分 --> </head>
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com