Web標(biāo)準(zhǔn):文檔類型和網(wǎng)頁瀏覽器
原文: http://www.alistapart.com/articles/beyonddoctype
作者:Aaron Gustafson
譯者:zhaozy in 3user.com
轉(zhuǎn)載請注明作者和譯者信息,謝謝!
進步總是要有代價的. 對網(wǎng)頁瀏覽器來說, 由于開發(fā)者像是宣傳真理一樣一些編輯器和瀏覽器(特別是Internet Explorer), 用戶們?yōu)榇嘶ㄙM很多的成本. 而當(dāng)這個瀏覽器推出了一個新版本, 然后又修正了之前版本的一些錯誤和對規(guī)范的誤解(或是引入了新的), 或是以任何方式改變行為時. 站點突然崩潰了, 然后我們的客戶, 我們的老板和用戶們都感覺到非常的不開心.
我們也許可以花上一段時間來解釋為什么我們的網(wǎng)站壞了, 但是如果他們沒有被破.壞那不是更好嗎? 一點點背景介紹
在成功的放出了更好的支持CSS的Internet Explorer 7的動力下, IE團隊開始在一個嶄新的渲染引擎(更好的遵照CSS 2.1規(guī)范)上開始進行IE 8的開發(fā)工作. 在他們的努力下, 瀏覽器已經(jīng)可以相當(dāng)精確地表現(xiàn)出 "Acid2 test" (http://webstandards.org/action/acid2/) . 這些你跟進的消息, 意味著IE將很快的支持生成內(nèi)容和數(shù)據(jù)的URLs, 而且經(jīng)確認(rèn), hasLayout會被永遠(yuǎn)取消. 它的表現(xiàn)結(jié)果會讓其他通過Acid2測試的瀏覽器們進行投票(包括: Safari, iCab, Konqueror, and Opera. Firefox3也已經(jīng)通過了Acid2測試,但是在文章編寫的時候還沒有放出.)
在新引擎的開發(fā)過程中, IE團隊謹(jǐn)記IE 7放出后的反面評價. 一些web標(biāo)準(zhǔn)的狂熱者甚至是一部分微軟的崇拜者感覺到在"IE7中他們做得還不夠 (程序缺陷的修正和CSS支持的改進上)". 但是有很大的一群開發(fā)者在感到疑惑, 因為他們的網(wǎng)站在IE6中表現(xiàn)的很完美, 但是到了IE7就完全崩潰了. web標(biāo)準(zhǔn)倡導(dǎo)者 Roger Johanssen 在他的博客中提出了 "頁面被破壞的三大原因" (http://www.456bereastreet.com/archive/200611/three_reasons_sites_break_in_internet_explorer_7/), 這些都驅(qū)使大家去改善對標(biāo)準(zhǔn)的支持. IE開發(fā)團隊發(fā)現(xiàn)了第四點: 文檔類型轉(zhuǎn)換(DOCTYPE switch), 一個啟用現(xiàn)代CSS布局的核心技術(shù)在標(biāo)志兼容性上有致命的缺陷. 文檔類型轉(zhuǎn)換器失效了
回到1998年, Todd Fahrner 的 "came up with a toggle(http://web.archive.org/web/20030212115103/http://www.geocrawler.com/archives/list-name.mbox/123/1998/7/0/1037920/)" 方法能允許一個瀏覽器提供兩套渲染模式: 一是給期許遵守標(biāo)準(zhǔn)的開發(fā)者的, 另一個是給其他所有人的. 這個觀點精辟簡單. 當(dāng)用戶端代理遇到對當(dāng)前HTML標(biāo)準(zhǔn)的Doctype聲明良好定義的文檔時(也就是 HTML2 不會取消它), 創(chuàng)作者就會知道她在做什么, 并且用"標(biāo)準(zhǔn)"模式渲染這個頁面(用W3C的盒模型元素布局). 但是在沒有Doctype或者定義了不正確Doctype時, 文檔會被用"Quirks" 模式渲染, 也就是說, 用windows版的IE5.X的非標(biāo)準(zhǔn)盒模型進行元素布局.
這個概念在兩年后的Mac版的IE上被首次運用, 這種方法很快的被其他瀏覽器制.造者采用, 意識到標(biāo)準(zhǔn)的開發(fā)者會在他們的文檔中包含正確的Doctype, 這樣做他們的部分在瀏覽器根據(jù)規(guī)范進行渲染時就不需要額外的工作了. 不注意標(biāo)準(zhǔn)的開發(fā)者很幸福的, 他們自己沒有發(fā)現(xiàn), 他們以及他們的工具都沒有為他們插.入正確的Doctype, 但是他們的文檔在瀏覽器中被特殊對待了.
不幸的是, 因為兩個關(guān)鍵問題, 為配合廣大的呼聲,Doctype不可能持續(xù)充當(dāng)標(biāo)準(zhǔn)模式的轉(zhuǎn)換器了:
- A List Apart和Web標(biāo)準(zhǔn)項目的推廣, 善良的編輯器開發(fā)者開始為他們的工具生成的標(biāo)記中插.入有效的,完整的Doctype. IE6的渲染行為有5年沒有更新了, 這讓大部分開發(fā)者認(rèn)為這個引擎是正確的, 并且不太會發(fā)生改變了.
這兩種情況破壞了Doctype的轉(zhuǎn)換, 因為它有致命的缺陷: 使用有效的Doctype意味著你明白你在通過web標(biāo)準(zhǔn)做什么, 你希望獲得更正確的渲染, 但是我們怎么知道它失敗了呢? 當(dāng)IE 7降臨的時候, 網(wǎng)站們變樣了.
當(dāng)然, 就像Roger指出的那樣, 一些被破壞的網(wǎng)站是使用IE6特有的CSS Hack(通常不會有提供選擇的機會). 但是發(fā)生這樣的慘劇是因為他們的開發(fā)者只在IE6當(dāng)中測試他們的頁面, 或者他們只關(guān)心在IE6中, 他們的網(wǎng)站是什么樣的. 因為他們?yōu)槭褂猛活悶g覽器的族群開發(fā)網(wǎng)站(比如說公司的內(nèi)部網(wǎng)). 現(xiàn)在當(dāng)然, 你可以只是聳聳肩然后說, 這是被證明是IE6的錯, 但是這些開發(fā)者應(yīng)該知道的更多, 但是你會忽略一個事實, 就是這些開發(fā)者們從來沒有明確的選擇 "standards mode", 甚至他們知道有這么個模式存在.
Chris Wilson, Internet Explorer的平面架構(gòu)師, 經(jīng)常提到的一個在IE上開發(fā)的核心原則: IE團隊做出的任何選擇的目的絕對不是 "破壞網(wǎng)頁". 可悲的是, IE 7卻讓去多人面對這個事實. Microsoft不愿意造成第二次錯誤, MicroSoft開始進入Web標(biāo)準(zhǔn)項目(我是其中成員之一), 以及其他幾個有標(biāo)準(zhǔn)意識的開發(fā)者, 向我們尋求幫助去尋找一個允許開發(fā)者自主選擇支持web標(biāo)準(zhǔn)的好辦法. 最終的目標(biāo)是找到一種可以比Doctype選擇器更直接清楚的方法, 可以運用到任何瀏覽器中, 不只是IE. 美好的未來
在去年召開的SXSW中, 我有幸看到了紐約公共圖書館的Carrie Bickner(同時是ALA的出版者Jeffrey Zeldman的妻子)領(lǐng)導(dǎo)的神奇的議題. "保存我們的數(shù)字遺產(chǎn)以及我們的個人收藏", 討論圖書館和個人在維護數(shù)字檔案時遇到的問題. 大部分的問題源自文件格式和應(yīng)用程序的進步: 例如 Microsoft Office 2007, 它不能可靠的展現(xiàn)一個本來可以展現(xiàn)的word 1.0的文檔. 這個議題讓我想到了網(wǎng)頁從建立開始會有怎樣的改變, 以及它們在web標(biāo)準(zhǔn)進步的同時又會怎樣的改變.
作為一個web標(biāo)準(zhǔn)的支持者, 我想看到的是瀏覽器在提供新的支持的時候不斷的為執(zhí)行標(biāo)準(zhǔn)化而改進. 同時我也看到了保護我們曾經(jīng)辛辛苦苦建立的基于table布局的網(wǎng)站的重要性. 當(dāng)然, 大部分通過 " Wayback Machine " 存在的錯誤因為Doctype轉(zhuǎn)換器仍然可以很好的為他們服務(wù)而暫時沒有遭受到打擊, 但是那些讓IE 6執(zhí)行"standards"模式的網(wǎng)站呢? 我也都知道, 在很多案例下, IE 7 也不能完全的渲染它們. 這是不是意味著我們有必要保留一份IE 6的備份在手邊, 為了瀏覽這個網(wǎng)頁達到的效果如同創(chuàng)作者想要的那樣? 這就是很多圖書館為了瀏覽古老的文件所做的事情. 在IE 8的時代, 我們同樣會面對這些潛在的問題, 用IE 7的渲染引擎生成的正常的文檔會不會在IE 8中變了形, 怎么來解決這個問題呢?
相關(guān)文章

創(chuàng)想WAP網(wǎng)頁瀏覽器 v2.0 免費綠色版
創(chuàng)想WAP網(wǎng)頁瀏覽器是一款可以瀏覽手機WAP站點的瀏覽器,綠色軟件體積小,無需安裝,界面清爽無廣告2014-02-22iPad Safari網(wǎng)頁瀏覽器里最近關(guān)閉的標(biāo)簽使用介紹
在你長按網(wǎng)頁標(biāo)簽欄右上角“+”時,Safari會彈出一個“最近關(guān)閉的標(biāo)簽”窗口,下面為大家介紹下iPad Safari里“最近關(guān)閉的標(biāo)簽”的使用2013-12-10
佐手軟件推出的新型網(wǎng)頁瀏覽器軟件,ah瀏覽器軟件秉承佐手ah系列軟件新穎實用簡便的特點2014-01-22
學(xué)生瀏覽器 網(wǎng)頁瀏覽器 v1.14 官方免費安裝版
學(xué)生瀏覽器是深圳學(xué)生網(wǎng)研發(fā)的一款專為中小學(xué)生打造的網(wǎng)頁瀏覽器,本軟件主要特點是自動屏蔽不良信息,便捷進入學(xué)生網(wǎng)論壇2013-12-09
Dooble Web Browser(網(wǎng)頁瀏覽器) V1.45 英文免費綠色版
dooble是一款安全、穩(wěn)定開源網(wǎng)頁瀏覽器,主要特色是能保護用戶的隱私2013-09-26Firefox火狐網(wǎng)頁瀏覽器如何設(shè)hao123為首頁
Firefox火狐瀏覽器如何設(shè)hao123為首頁,想必很多的朋友都不會吧,其實很簡單,下面為大家詳細(xì)介紹下具體的設(shè)置步驟,有此需求的朋友可以參考下,希望對大家有所幫助2013-08-06
Offline Explorer enterprise(離線網(wǎng)頁瀏覽器) v7.1.4451 中文免費安裝
Offline Explorer enterprise(離線網(wǎng)頁瀏覽器)是一款相當(dāng)方便使用的離線瀏覽工具,可排定抓取時間、設(shè)定Proxy,也可選擇抓取的項目及大小,可自設(shè)下載的存放位置、及存放的2016-02-29
網(wǎng)頁游戲變速器(網(wǎng)頁瀏覽器加速軟件)V1.7.04.25 官方中文版
網(wǎng)頁游戲變速器是一款專為網(wǎng)頁游戲玩家量身打造的網(wǎng)頁瀏覽器加速器。2013-05-07
搜狗瀏覽器 v5.0(0902) 綠色中文免費版 新內(nèi)核版網(wǎng)頁瀏覽器
網(wǎng)頁更新提醒:當(dāng)用戶所關(guān)注的網(wǎng)頁發(fā)生變化的時候,無需親自去查看或刷新頁面,由搜狗瀏覽器直接在后臺智能“感知到”網(wǎng)頁更新的關(guān)鍵內(nèi)容,并且將“新內(nèi)容”提示或通知給用2014-09-03
115瀏覽器(多功能網(wǎng)頁瀏覽器) v6.0.4.47 綠色免費版
115瀏覽器是雨林木風(fēng)自主研發(fā)的一款優(yōu)秀的完全免費的多功能網(wǎng)頁瀏覽器,本產(chǎn)品具有體積小巧、綠色實用、安全穩(wěn)定、界面簡約、操作方便等特性,歡迎需要的朋友下載使用2024-07-19









