網路的發展總是不斷地催生新技術的產生,而HTML5和CSS3是最近一直被討論的熱門話題,對於每個網路開發者尤其是前端開發者而言,都充滿了好奇與渴望。那麼HTML5和CSS3究竟有哪些讓我們眼前一亮的東西呢?我在WebRebuild北京交流會和珍珠奶茶幫上分享了《揭秘HTML5和CSS3 》,PPT在這裡:
http://docs.google.com/present/view?id=dhpdbrp_51hf88z8g8
HTML 5草案的前身名為Web Applications 1.0,於2004年由WHATWG提出,於2007年被W3C接納,並成立了新的HTML工作團隊。在2008年1月22日,第一份正式草案發布。 HTML 5是近十年來Web開發標準最巨大的飛躍。和以前的版本不同,HTML 5並非僅僅用來表示Web內容,它的新使命是將Web帶入一個成熟的應用平台,在HTML 5平台上,視頻,音頻,圖象,動畫,以及同電腦的交互都被標準化。那我們來看看HTML5的技術概覽有哪些:
HTML5新增了許多多媒體和互動元素如video, audio,在HTML4當中如果要嵌入一個視訊或是音訊的話需要引入一大段的程式碼,還有相容各個瀏覽器,而HTML5只需要透過引入一個標籤就可以,就像img標籤一樣方便。在頁面佈局和內容實作方面HTML5新增了許多結構化標籤元素以及區塊級及語意元素,如果你要用HTML表示一個檔案的上傳進度條,在HTML5中你可以用progress這個元素來表示,它有一個value屬性描述了已經完成了多少任務,還有一個屬性max描述了這個任務一共需要多少,還可以透過DOM介面得到這個進度條的position屬性(唯讀),也就是任務完成的百分比。 Youtube 已經在HTML5技術上做了一個嘗試, http://www.youtube.com/html5 (需要翻牆) 是用HTML5做的一個DEMO,從整個頁面原始碼來看,非常簡潔。當然HTML5也對一些元素新增了一些屬性,例如input和textarea的placeholder屬性,相當於輸入框的輸入提示,script有一個async屬性會影響腳本的載入和執行。對於所有的HTML共有的屬性我們通常把它稱作是“全域屬性”,如class, id, tabindex, title,HTML5也新增了一些全域屬性,如contenteditable, contextmenu, hidden等屬性。 HTML5也增加了對微資料的支持,如HTML5新增的item, itempro, subject等屬性。
當然HTML5也移除了一些表示頁面展現的元素,如font, center, strike等,這些本來應該是CSS來做的,所以還是很好理解的,也移除了一些影響網站可訪問性的元素如frame, frameset, noframe以及一些不常用的元素如acronym,而採用abbr來表示縮寫。 HTML5也移除了一些影響客戶端相容性的HTML熟悉,如link的rev屬性,td的scope屬性;HTML5也移除了一些表示頁面展現的屬性如一些元素的align,bgcolor屬性。
HTML5 提供了強大的控制項類型如url, email, date, tel等,強大的約束屬性,如required表示必填,文件上傳的accept屬性,以及一些表單重複元素模型的支持,HTML5在提交表單的時候還可以設定提交的方式為XML提交方式,這樣伺服器端接收到的資料將是XML格式,HTML5的表單被定義為“Web Forms 2.0”,目前opera9.5+對Web Forms 2.0的支援較為完美。
點此查看Web Forms 2.0 DEMO ,需要Opera9.5+
HTML5在DOM LEVEL 2 HTML方面很多都是繼承自HTMLDocument的接口,當然HTML5在DOM上也有一些值得注意的新成員,如:支持getElementsByClassName,可以根據class類名選擇元素,getSelection()將會返回當前選中的對象,在選擇器上面有兩個方法querySelector和querySelectorAll可以根據css選擇符來取得要查詢的元素,相當於YUI3中的Y.one和Y.all。
HTML5在Javascript上新增了哪些API呢?
HTML5讓你心動了嗎?那麼HTML5什麼時候會成為標準呢?據說要等到2022年,這裡有一個很有趣的網站http://ishtml5readyyet.com/告訴你還有多少天HTML5會真正到來。