HTML5縷清歷史的追溯

2021-06-17 15:03:00 字數 2979 閱讀 8970

html最早是從2.0版開始的。從來就沒有1.0版。如果有人告訴你說,他最早是從html 1.0開始使用html的,那他絕對是在忽悠你,誤導你

html5學習

。從前確實有乙個名叫html tags的文件,其中的部分標籤一直用到現在,但那個文件並非官方的規範。 

使用標籤、尖括號、p或h1,等等,並不是蒂姆·伯納斯-李首創的想法。當時的sgml裡就有了這些概念,而且當時的cern(conseil europeen pour la recherche nucleaire,歐洲核子研究委員會)也在使用sgml的乙個特定的版本。也就是說,即便在那個時代,他也沒有白手起家;這一點在html後來的發展過程中也體現了出來:繼往開來、承前啟後,而不是另立門戶、從頭開始。 

換句話說,這篇名為html tags的文件可以算作html的第乙個版本,但它卻不是乙個正式的版本。第乙個正式版本,html 2.0,也不是出自w3c之手。html 2.0是由ietf,網際網路工程任務組(internet engineering task force)制定的。在w3c成立之前,ietf已經發布了不少標準。但從第三個版本開始往後,w3c,全球資訊網聯盟(world wide web consortium)開始接手,並負責後續版本的制定工作。

20世紀九十年代html有過幾次快速的發展。眾所周知,在那個時代要想構建**,可是一項十分複雜的工程。瀏覽器大戰曾令人頭疼不已。市場競爭的結果就是各家瀏覽器裡都塞滿了各種專有的特性,都試圖在專有特性上勝人一籌。當時的混亂程度不堪回首,html到底還重不重要,或者它作為web格式的前景如何,誰都說不清楚。 

從2023年到2023年,html的版本從3.2到4.0到4.01,經歷了非常快的發展。問題是到了4.01的時候,w3c的認識發生了倒退,他們說「好了,這個版本就這樣了,html也就這樣了;html 4.01是html的最後乙個版本了,我們用不著html工作組了。」 w3c並沒有停止開發這門語言,只不過他們對html不再感興趣了。在html 4.01之後,他們提出了xhtml 1.0。雖然聽起來完全不同,但xhtml 1.0與html 4.01其實是一樣的。我的意思是說,從字面上看這兩個規範的內容是一樣的,詞彙表是一樣的,所有的元素是一樣,所有的屬性也都是一樣的。唯一一點不同之處,就是xhtml 1.0要求使用xml語法。也就是說,所有屬性都必須使用小寫字母,所有元素也必須使用小寫字母,所有屬性值都必須加引號,你還得記著使用結束標籤,記著對img和br要使用自結束標籤。 從規範本身的內容來看,實際上是相同的,沒有什麼不同。不同之處就是編碼風格,因為對瀏覽器來說,讀取符合html 4.01、html 3.2,或者xhtml 1.0規範的網頁都沒有問題,對瀏覽器來說這些網頁都是一樣的,都會生成相同的dom樹。只不過人們會比較喜歡xhtml 1.0,因為不少人認同它比較嚴格的編碼風格。 

到了2023年,web標準專案(web standards project)的活動開展得如火如荼,開發人員對瀏覽器裡包含的那些亂七八糟的專有特性已經忍無可忍了。大家都很生氣,就罵那些瀏覽器廠商「遵守個規範就他媽的真有那麼難嗎?」當時css有了長足的發展,而且與xhtml 1.0結合得也很緊密,css加xhtml 1.0基本上就可以算是「最佳實踐」了。雖然在我看來html 4.01與xhtml 1.0沒有本質上的不同,但大家都接受了。專業的開發人員能做到元素全部小寫,屬性全部小寫,屬性值也全部加引號:由於專業人員起到了模範帶頭作用,越來越多的人也都開始支援這種語法。 

我就是乙個例子!我一直都使用xhtml 1.0文件型別,原因是這樣一來驗證器就能給我幫上很大的忙,對不對?只要我寫的是xhtml 1.0,然後用驗證器測試,它就能告訴我是不是忘了給屬性值加引號,是不是沒有結束某個標籤,等等等等。而如果我寫的是html 4.01,同樣的問題就變成了有效的了,驗證器就不一定會提醒我了。 這就是我一直使用xhtml 1.0的原因。我估計很多人都……使用xhtml 1.0的朋友,請把手舉起來。好的。html 4.01呢?人少多了。一直沒有舉手的呢,大聲點,你們用什麼?html5,也很好!更早的呢,還有人使用更早的文件型別嗎?沒有了?

這就是個大問題。xhtml 1.0之後是xhtml 1.1,只是小數點後面的數字加了乙個1,而且從詞彙表的角度看,規範本身沒有什麼新東西,元素也都相同,屬性也都相同。但對xhtml 1.1來說,唯一的變化是你必須把自己的文件標記為xml文件。在使用xhtml 1.0的時候,還可以把文件標記為html,而我們也正是這樣做的,否則把文件標記為xml沒準真會把人逼瘋的。 

為什麼這麼說呢?首先,把文件標記為xml後,internet explorer不能處理。當然,ie9是可以處理了。恐怕有人會講「真是太可愛了」,他們到現在居然都沒有忘了這件事。這艘船終於靠岸了!不過那時候,作為全球領先的瀏覽器,ie無法處理接收到的xml文件型別的文件,而規範又要求你以xml文件型別來傳送文件,這不把人逼瘋才怪呢。 

所以說xhtml 1.1有點脫離現實,而你不想把文件以xml格式傳送給那些能夠理解xml的瀏覽器,則是因為xml的錯誤處理模型。xml的語法,無論是屬性小寫,元素小寫,還是始終要給屬性值加引號,這些都沒有問題,都很好,事實上我也喜歡這樣做,但xml的錯誤處理模型卻是這樣的:解析器如果遇到錯誤,停止解析。規範裡就是這麼寫的。如果你把xhtml 1.1標記為xml文件型別,假設你用firefox開啟這個文件,而文件中有乙個和號(&)沒有正確編碼,就算整個頁面中就這一處錯誤,你看到的也將是黃屏,瀏覽器死掉了。firefox會說:「沒戲了,頁面中有乙個錯誤,你看不到這個網頁了。」根據xml規範,這樣處理是正確的,對firefox而言,遇到錯誤就停止解析,並且不呈現其他任何內容是嚴格按照xml規範做的。因為它不是html,html根本就沒有錯誤處理模型,但根據xml規範,這樣做沒錯。 

這就是為什麼你不會把文件標記為xml的另乙個原因。接下來,新的版本是xhtml 2,大家注意後面沒有日期,因為這個規範並沒有完成。 

現在就說說xhtml 2,我很願意把問題說清楚,xhtml 2實際上真是乙個非常非常好的規範,確實非常好……從理論的角度來說。我的意思是說,制定這個規範的人都是非常非常有頭腦的。直說吧,領導制定這個規範的傢伙是史蒂芬·彭伯頓(stephen pemberton),他應該是本地人,是乙個聰明過人的傢伙。

html5 遊戲開發

本身也很了不起,如果所有人都同意使用的話,也一定是乙個非常好的格式。只不過,還不夠實際。 

html5歷史管理

在網易雲課堂上看了妙味課堂的關於html5歷史管理的課程,在這裡做一下筆記。單頁面或ajax區域性重新整理的頁面中,沒有辦法通過前一步和後一步得到歷史訪問資料,此時有兩種方法可以解決這個問題 1.onhashchange事件,示例 2.history下的pushstate和popstate事件,示例...

關於HTML5的一小段歷史 讀《HTML5揭秘》

書中介紹的這一段html發展史更像是一場馬拉松跑,參賽的雙方是w3c 全球資訊網聯盟,推動xhtml的發展 與what小組 web超文字應用程式技術,推動html更加豐富和易用 雙方都想讓自己的想法成為html的發展方向。正如書中引言所述 乙份技術規範和它的具體實現必須要做到步調一致。實現先於規範完...

HTML5的學習(二)HTML5標籤

3.按功能排列標籤 標籤 描述 html4 html5 定義注釋。定義文件型別。定義文件的主體。定義文件中的節。定義section或page的頁尾。to定義html標題。定義html文件。定義關於文件的資訊。定義section或page的頁首。定義關於html文件的元資訊。定義針對不支援客戶端指令碼...