非Web模式(Non-Web Modes)
某些引擎擁有的模式與Web內(nèi)容無關(guān)。為了完整性,它們僅僅在這里被提到。Opera有個WML2.0模式。Leopard上的WebKit有個用于舊式Dashboard widgets的特定模式。
影響
以下是這些模式的主要影響:
布局
text/html的模式主要是影響CSS布局。例如,表格不繼承樣式是個怪癖。在某些瀏覽器的怪癖模式下,盒模型(box model)變成IE5.5的盒模型。本文檔沒有列舉出所有的布局怪癖。
幾乎標(biāo)準(zhǔn)模式(有這種模式的瀏覽器中)中,僅包含圖片的表格單元格的高和標(biāo)準(zhǔn)模式中不同。
XML模式中,選擇器有不同的區(qū)分大小寫行為。此外,用于HTML body元素的特有規(guī)則不能應(yīng)用在那些沒有實(shí)現(xiàn)最新CSS2.1改變的較舊版本的瀏覽器。
解析
也有一些怪癖影響HTML和CSS的解析且會導(dǎo)致符合標(biāo)準(zhǔn)的網(wǎng)頁被錯誤解析。怪癖布局決定了這些怪癖是否開啟。無論如何,了解怪癖模式和標(biāo)準(zhǔn)模式在CSS布局和解析(非HTML解析)上的主要異同是非常重要的。
一些人錯誤地把標(biāo)準(zhǔn)模式稱為“嚴(yán)格解析模式(strict parsing mode)”,其讓人誤解了瀏覽器強(qiáng)制執(zhí)行HTML語法規(guī)則和用瀏覽器評估標(biāo)記的正確性。情況并非如此。即使當(dāng)標(biāo)準(zhǔn)模式布局生效時,瀏覽器依舊會做標(biāo)簽雜燴湯(tag soup,http://en.wikipedia.org/wiki/Tag_soup)修正工作。(在2000年Netscape6發(fā)布前,Mozilla的確有用于強(qiáng)制執(zhí)行HTML語法規(guī)則的解析模式。這些模式和現(xiàn)有的Web內(nèi)容不兼容而被遺棄。)
另一個常見的誤解是關(guān)于XHTML解析的。通常認(rèn)為用XHTML doctype得到不同的解析。其實(shí)并非如此,內(nèi)容類型是text/html的XHTML文檔所用解析器和HTML文檔的是同一個。目前瀏覽器在意的是文檔類型為text/html的XHTML僅是“撒面包丁的標(biāo)簽雜燴湯(tag soup with croutons)”(到處是額外的斜線)。
僅當(dāng)使用XML文檔類型的文檔(例如:application/xhtml+xml或xmapplication/)會觸發(fā)XML模式來解析,這時的解析器完全不同于HTML解析器。
腳本
雖然怪癖模式主要是關(guān)于CSS的,但也有一些是關(guān)于腳本的。例如,F(xiàn)irefox的怪癖模式中,HTML id 屬性像在IE一樣建立了全局腳本作用域的對象引用。IE8中關(guān)于腳本的影響比其他瀏覽器更值得關(guān)注。
XML模式中,某些DOM API的行為徹底不同,因?yàn)閄ML的DOM API行為被定義時不兼容HTML的行為。
doctype嗅探(也叫doctype轉(zhuǎn)換)
現(xiàn)代瀏覽器使用doctype嗅探來決定text/html文檔的引擎模式。這意味著模式的選擇是基于HTML文檔開始的文檔類型聲明(或缺少)。(這不適于使用XML文檔類型的文檔。)
文檔類型聲明(doctype)是SGML的語法偽造,SGML是個舊式的標(biāo)記框架,HTML5之前的HTML就是依據(jù)其定義的。HTML4.01規(guī)范中,文檔類型聲明描述的是HTML的版本信息。盡管名字叫“文檔類型聲明”且HTML 4.01規(guī)范所描述的是關(guān)于“版本信息”,文檔類型聲明并不適用把SGML或XML文檔分類為特定類型的文檔,即使它看起來像是(因?yàn)槊郑#?a href="#xml">更多內(nèi)容在附錄中)
HTML4.01規(guī)范和ISO 8879(SGML)都沒有說關(guān)于使用文檔類型聲明作為引擎模式轉(zhuǎn)換的任何事情。doctype嗅探是基于觀察,在doctype嗅探被設(shè)計時,絕大部分的怪癖文檔既沒有文檔類型聲明也沒有引用舊的DTD。HTML5接受這個事實(shí),且定義了text/html中doctype作為唯一的模式轉(zhuǎn)換。
典型的預(yù)HTML5(pre-HTML5)文檔類型聲明包含(被空白分開)“<!DOCTYPE”字符串,根元素(“html”)的通用標(biāo)識符, “PUBLIC”字符串,處于引號中的DTD公共標(biāo)識符,同一DTD的可能系統(tǒng)標(biāo)識符(URL)和字符 “>”。文檔類型聲明位于文檔的根元素開始標(biāo)簽之前。
出處:隨網(wǎng)之舞
責(zé)任編輯:bluehearts
上一頁 用doctype激活瀏覽器模式 [1] 下一頁 用doctype激活瀏覽器模式 [3]
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|