天下大勢,分久必合
瀏覽器大戰
WWW之父、物理學家Tim Berners-Lee根據 SGML創造了HTML置標語言,隨后美國一家大學的兩個學生編寫程序實現了這種語言,也就是世界上第一個瀏覽器。后來,硅谷一著名公司的高層人員辭職后找到這兩個學生,共同創建了一家公司,就是現在著名的Netscape。很快,Netscape的第一款瀏覽器面世,這是世界上第一款商用瀏覽器,并獲得巨大成功,迅速發展起來。
與此同時,微軟也相中了瀏覽器這塊誘人的“蛋糕”,決定強勢介入,于是出現了IE。隨后,雙方為了爭奪市場份額,展開了長期而激烈的瀏覽器大戰。
為了排斥對手,保護已有的市場份額,他們各自開發了只有自己瀏覽器才能支持的私有標記,以及私有的DOM和腳本語言。例如MSIE私有的ActiveX和基于document.all的JScript,Netscape的私有的基于document.layers的JavaScript。他們不斷的升級自己的瀏覽器版本,并向用戶“吹噓”自己新版本的特有性能。各個廠家都把所有精力專注于開發自己特有的技術,自我保護,甚至私自創建自己獨有的標記,將標準拋在一邊。
于是,我們不得不用非標準的標記和代碼創造多個版本,每一個都迎合不同瀏覽器的“癖好”,以滿足各種用戶的需要。開發者必須使用探測腳本進行瀏覽器檢測,針對不同的瀏覽器編寫各自的腳本。此外,開發者還得寫那些需要占用兩倍帶寬的表現層標記,或者提供一個難以被搜索引擎、非主流瀏覽器和設備訪問的服務頁面。這種做法是昂貴的、無效的、不可忍受的,是困擾大多數網站“永久淘汰”的根源。所有的這一切都源自于規則的不統一,自然地,解決這一切的最佳方法就是遵循Web標準。
瀏覽器大戰的早期,Netscape的Navigator占據優勢。但是,在WaSP(Web標準組織)的促進下,為了完全符合標準,Netscape大膽地拋棄Navigator/ Communicator 4.0 瀏覽器和每一個遺留的過時代碼,從零開始,放棄升級,重新開發一個新的瀏覽器。這開始于1998年,新瀏覽器的開發使Netscape損失了相當大的市場,微軟的IE逐漸占了上風。Netscape的管理者和工程師并沒有瘋狂,他們像WaSP一樣相信標準,英勇地堅持著,決心堅持到底。許多公司并不在乎,干脆放棄了這個項目。他們寧愿在遺留的代碼上發布一個非標準的5.0/6.0瀏覽器,也不愿意犧牲額外的時間,更不愿意與一個厲害的競爭者分享市場,就像Microsoft。
現代瀏覽器
“現代”或“兼容標準”瀏覽器,指的是那些能夠理解并支持HTML和XHTML、CSS、ECMAScript和W3C文檔對象模型(DOM)的瀏覽器。這些基本標準能夠幫助設計師和開發者超越以前守舊的方法(表現標記和不兼容性的腳本語言)及其他造成的使網站荒廢的陳舊方法。現在還沒有瀏覽器是完全支持標準的,而且也不太可能達到。但是2000年一開始,就涌現了一大批幾乎全面支持基本核心標準的瀏覽器。當這些瀏覽器的升級版本投放市場時,它們幾乎更具兼容性,bug也更少了。這些瀏覽器所占的市場份額在不斷地增加。現在,幾乎所有的Web用戶都已經更新成下面列出的瀏覽器其中一種,或者它們的后續的改良版本。這張列表只列出了用得最多的一些瀏覽器及其主要特性。
- Opera 7
- 推出時間:2002年
- 支持HTML/XHTML嗎?:支持。
- 支持CSS嗎?:幾乎全面支持所有CSS1和大部分CSS2。
- 支持ECMAScript/DOM嗎?:支持,第一個Opera版本就已經支持了。
- 特性:Opera的第一個版本支持W3C DOM,是第一個真正“兼容標準”的Opera版本。其公司的產品對最早期的標準如HTML和CSS一直都提供良好的支持。如Opera的以前的版 本一樣,Opera 7加入了頁面縮放功能,可以幫助增強網絡文檔和網絡圖片對于視力受損用戶的可訪問性。
- MSIE 5+/Macintosh
- 推出時間:2001年
- 支持HTML/XHTML嗎?:支持
- 支持CSS嗎?:支持全部CSS1,部分支持CSS2。
- 支持ECMAScript/DOM嗎?:支持
- 特性:2001年3月第1個“兼容標準”瀏覽器投放市場。它是第一個正確支持JavaScript/DOM的IE/Mac版本,第一個在任何平臺上都可以正確支持CSS盒模型的瀏覽器。文本的縮放功能幫助增強網絡文檔對視力受損用戶的可訪問性。支持用戶樣式表。瀏覽器的用于提高對標準的支持的Tasman表現引擎面世,IE5/Macintosh對DOM的支持非常良好,但是并不全面。運行速度很慢,有時候出現的奇怪行為令動態文檔的制作者們抓狂。瀏覽器支持基本的DOM功能,從標準的角度來說,整體品質還是很不錯的。
- Netscape 6+
- 推出時間:2001年
- 支持HTML/XHTML嗎?:支持。
- 支持CSS嗎?:支持全部CSS1,大部分CSS2。
- 支持ECMAScript/DOM嗎?:基本上支持,雖然有些位數是奇數,相對于IE/Windows,它的動態色彩刷新的速度很慢。
- 特性:基于Gecko的瀏覽器,完全支持網絡標準CSS,XML,XHTML,DOM和ECMAScript(如Tasman,Gecko是支持核心網絡標準的一個表現引擎。Tasman只適合Macintosh,而Gecko適合所有平臺)。早期的Netscape 6.0版本有一些bug,后來的版本要好些,7.0和更高的版本都很出色。為增強可訪問性而加入了文本縮放功能,支持用戶樣式表和可選樣式表,從Netscape7.01開始,支持自動彈出廣告屏檔。
- Mozilla 1.0
- 推出時間:2002年,Moz1.0是2002年5月推出的,最早的Mozilla 要追溯到1996年左右。
- 支持HTML/XHTML嗎?:支持
- 支持CSS嗎?:支持全部CSS1,部分支持CSS2。
- 支持ECMAScript/DOM嗎?:見DOM在Netscape 6+里的說明。
- 特性:開放源代碼的基于Gecko瀏覽器完全支持網絡標準。為增強可訪問性而加入了文本縮放功能,支持用戶樣式表和可選樣式表?;贛ozilla 瀏覽器還包括Chimera/Camino和Phoenix,但是Mozilla 不僅僅用于瀏覽。你可以用Gecko和開放源代碼的Mozilla 基本代碼創建超越傳統臺式瀏覽器的新應用程序(例如,用Mozilla 和Java制作的電視置頂盒)。
- Safari
- 推出時間:2002年下半年
- 支持HTML/XHTML嗎?:支持。
- 支持CSS嗎?:似乎支持大部分CSS1,一部分CSS2,有時候支持的方式很奇怪。
- 支持ECMAScript/DOM嗎?:基本上支持。
- 特性:它是蘋果電腦為OS X用戶創建的,基于開放源碼KHTML引擎。在大部分站點上,輕便、高速、精確。雖然現在還屬于二流瀏覽器,但是已經被上百萬的Macintosh用戶使用。加入了文本縮放功能一提高可訪問性。還收入了快捷Bug報告按鈕,可以快速修復CSS,XHTML或腳本里的錯誤。
- MSIE 6/Windows
- 推出時間:2001年
- 支持HTML/XHTML嗎?:支持。
- 支持CSS嗎?:支持大部分CSS1,部分CSS2。
- 支持ECMAScript/DOM嗎?:基本上支持,但是需要一些專門的輔助程序。這些輔助程序只為IE6/Windows編寫一些代碼。一般沒有必要用輔助程序編寫代碼,除非呢要創建一個只用IE的內部網站,而且即使這樣,也最好用標準DOM,以防將來把網站的特性和部分轉移到公共網站空間而產生問題。
- 特性:IE6/Windows版本適應范圍最廣的瀏覽器,也是目前網絡使用最多的瀏覽器,部分原因是它是唯一的操作系統內置瀏覽器,當與Windows XP Clear Type配合使用時,顯示文檔的效果非常好。不包含文本縮放或頁面縮放,不支持可選樣式表。視力受損用戶可以通過設置“輔助功能”里的“忽略文檔字號”來提高可訪問性。但是這種“要么全有,要么全無”的選擇沒有其他標準兼容瀏覽器提供的文本縮放和頁面縮放方便好用。 IE6/Windows用戶可以通過給瀏覽器添加一個窗口小部件來調整文檔字號,但是不能調整某些字號設置方式設置的字體。(例如,用像素設置的文檔在IE 6/Windows上就不能調整大小),而在IE5+/Macintosh、Mozilla、Netscape 6+、Opera和Chimera上,無論是用特殊方式設置的文檔,其字號都是可以調整的。
- MSIE5.5/Windows
- 推出時間:2001年
- 支持HTML/XHTML嗎?:支持。
- 支持CSS嗎?:大部分支持(但是有一些大bug)
- 支持ECMAScript/DOM嗎?:不太支持。
- 特性:理解標準,過去是很不錯的瀏覽器,但是它的CSS的bug和腳本漏洞使它的兼容性沒有其他所列的瀏覽器高。本書的第二部分內容“設計和建造”里介紹了關于怎樣解決CSS的bug問題。
- MSIE5/Windows
- 推出時間:1999年
- 支持HTML/XHTML嗎?:支持,雖然有些漏洞。
- 支持CSS嗎?:一點點,但是有大bug和漏洞。
- 支持ECMAScript/DOM嗎?:一點點。
- 特性:見IE5.5說明。
- Netscape 4
- 推出時間:1997年
- 支持HTML/XHTML嗎?:只是部分支持。
- 支持CSS嗎?:幾乎不支持。
- 支持ECMAScript/DOM嗎?:不支持。
- 特性:它是在瀏覽器競爭激烈的時候推出的,曾經是功能強大的瀏覽器,只支持專門的代碼和標記,不支持標準,幾乎不支持CSS,所以它對基本HTML的支持也不出色。不支持DOM因為DOM那時候還沒被寫出來——而且就算那個時候DOM已經出現了,它也可能不支持,因為在瀏覽器競爭激烈的時期,Netscape和微軟都堅信只有犧牲標準,發明新技術才能“取勝”。雖然大部分用戶都已經升級為Netscape 6+或是其他的,如MSIE、Opera瀏覽器,還是有一些用戶出于這樣那樣的原因沒有升級。因為還有用戶堅持用它們,還因為它們對標準不令人滿意的支持,很多設計師和開發者覺得要繼續采取過時的方法來“支持”不斷減少的這部分用戶。但是本書證明,可以在使用標準的同時支持Netscape 4和任何用戶。
- MSIE 4
- 推出時間:1997年
- 支持HTML/XHTML嗎?:Netscape 4支持得多一些,但不是很多。
- 支持CSS嗎?:Netscape 4支持得多一些。
- 支持ECMAScript/DOM嗎?:不支持。
- 特性:它是在瀏覽器競爭激烈的時候推出的,支持專門的代碼和標記,不支持標準。幾乎所有的IE 4用戶后來都升級為最新的版本,部分原因是微軟吧瀏覽器和操作系統捆綁在一起。例如,從Windows 95升級到Windows XP,你就需要不斷的從IE 4轉換到IE 6.雖然從標準的角度來說,IE 4沒有IE 6“好”,但是對于開發者來說,IE 4產生的問題更少,因為IE 4用得少。
注意:關于這一部分顯然有些過時,IE已經到了7,2.0.0.9的Firefox核心是Mozilla 5.0,Opera的最新版本則是9.50 beta,但是上面的數據還是很有一定的借鑒價值!最新的瀏覽器支持情況正在整理中……
其他網絡設備
- 文本瀏覽器
- 又稱“非圖形瀏覽器”,與現在主流的瀏覽器(圖形瀏覽器)相比,最大的不同是只能顯示文本,不能顯示圖像等多媒體信息。常見的文本瀏覽器有Lynx (www.delorie.com)。在某些情況下,你可以使用這些瀏覽器查看一下你的網頁的效果,以驗證網站的可訪問性。
- 屏幕閱讀器
- 屏幕閱讀器主要供殘障人士(主要是有視力障礙者)使用,可以大聲朗讀站點的內容,當然,主要是文本內容。
此外,使用Palm Pilots、PDA、智能手機等非傳統設備上網瀏覽信息,也正日益流行。
天下歸一
諸多現象表明,Web標準的回歸和統一,已成歷史的必然!