自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

揭秘HTML 5和CSS3 Web實現(xiàn)飛躍的踏板

開發(fā) 前端
互聯(lián)網(wǎng)的發(fā)展總是在不斷地催生新技術的產(chǎn)生,而HTML 5和CSS3是最近一直被討論的熱門話題,對于每個互聯(lián)網(wǎng)開發(fā)者尤其是前端開發(fā)者而言,都充滿了好奇與渴望。

互聯(lián)網(wǎng)的發(fā)展總是在不斷地催生新技術的產(chǎn)生,而HTML 5和CSS 3是最近一直被討論的熱門話題,關于HTML 5與Flash之間的唇槍舌戰(zhàn)一直不斷,而CSS 3的新功能也讓人們備受期待。那么HTML 5和CSS3究竟有哪些讓我們眼前一亮的東西呢?

HTML 5草案的前身名為Web Applications 1.0,于2004年被WHATWG提出,于2007年被W3C接納,并成立了新的HTML工作團隊。在2008年1月22日,第一份正式草案發(fā)布。 HTML 5是近十年來Web開發(fā)標準最巨大的飛躍。和以前的版本不同,HTML 5并非僅僅用來表示W(wǎng)eb內容,它的新使命是將Web帶入一個成熟的應用平臺,在HTML 5平臺上,視頻,音頻,圖象,動畫,以及同電腦的交互都被標準化。那么我們來看一下HTML 5的技術概覽有哪些:

HTML 5新增和移除的元素HTML 5新增了很多多媒體和交互性元素如video, audio,在HTML 4當中如果要嵌入一個視頻或是音頻的話需要引入一大段的代碼,還有兼容各個瀏覽器,而HTML 5只需要通過引入一個標簽就可以,就像img標簽一樣方便。在頁面布局和內容實現(xiàn)方面HTML 5新增了很多結構化標簽元素以及塊級及語義元素,如果你要用HTML表示一個文件的上傳進度條,在HTML 5中你可以用progress這個元素來表示,它有一個value屬性描述了已經(jīng)完成了多少任務,還有一個屬性max描述了這個任務一共需要多少,還可以通過DOM接口得到這個進度條的position屬性(只讀),也就是任務完成的百分比。

[[9522]]

Youtube在HTML 5技術上已經(jīng)做了一個嘗試,從整個頁面源代碼來看,非常簡潔。當然HTML 5也對一些元素新增了一些屬性,如input和textarea的placeholder屬性,相當于輸入框的輸入提示,script有一個async屬性會影響腳本的加載和執(zhí)行。對于所有的HTML共有的屬性我們通常把它稱作是“全局屬性”,如class, id, tabindex, title,HTML 5也新增了一些全局屬性,如contenteditable, contextmenu, hidden等屬性。HTML 5還增加了對于微數(shù)據(jù)的支持,如HTML5新增的item, itempro, subject等屬性。

當然HTML 5也移除了一些表示頁面展現(xiàn)的元素,如font, center, strike等,這些本應該是CSS來做的,所以還是很好理解的,也移除了一些影響網(wǎng)站可訪問性的元素如frame, frameset, noframe以及一些不常用的元素如acronym,而采用abbr來表示縮寫。HTML 5還移除了一些影響客戶端兼容性的HTML熟悉,如link的rev屬性,td的scope屬性;HTML 5也移除了一些表示頁面展現(xiàn)的屬性如一些元素的align,bgcolor屬性。

HTML 5對表單的支持HTML 5提供了強大的控件類型如url, email, date, tel等,強大的約束屬性,如required表示必填,文件上傳的accept屬性,以及一些表單重復元素模型的支持,HTML5在提交表單的時候還可以設置提交的方式為XML提交方式,這樣服務器端接收到的數(shù)據(jù)將是XML格式,HTML5的表單被定義為“Web Forms 2.0”,目前opera9.5+對Web Forms 2.0的支持較為完美。

HTML 5 DOM變化HTML 5在DOM LEVEL 2 HTML方面很多都是繼承自HTMLDocument的接口,當然HTML 5在DOM上也有一些值得注意的新成員,如:支持 getElementsByClassName,可以根據(jù)class類名選擇元素,getSelection()將會返回當前選中的對象,在選擇器上面有兩個方法querySelector和querySelectorAll可以根據(jù) css選擇符來獲取要查詢的元素,相當于YUI3中的Y.one和Y.all。 #p#

HTML 5的Javascript API,HTML 5在Javascript上面新增了哪些API呢?

Video/Audio: HTML 5為Video和Audio提供了API來讓開發(fā)者控制他們自己的用戶界面,如可以播放或暫停媒體內容。

Canvas: Canvas是一個新的HTML元素,這個元素可以被Script語言(通常是JavaScript)用來繪制圖形。例如可以用它來畫圖、合成圖象、或做簡單的(和不那么簡單的)動畫。Canvas是一個神奇的東西,它給我的第一感覺就像是在用Photoshop一樣,它的每一個方法跟Photoshop 是那么地相似,通過canvas.getContext(’2d’)就可以得到這個canvas的API,你可以通過fillStyle設置其填充顏色或是通過strokeStyle設置其描邊顏色,甚至它畫路徑的操作跟Photoshop的鋼筆操作更是不謀而合。Canvas在很多網(wǎng)站都已經(jīng)有應用,如Firefox的實時下載狀態(tài)統(tǒng)計,甚至還可以用canvas來編寫Web Game。

Drag&Drop: 在指示設備的視覺媒體中,”Drag”的操作就是鼠標按下(mousedown)并伴隨著鼠標移動(mousemove)的事件,而”Drop”則是鼠標釋放時觸發(fā)的事件。在Drag&Drop里定義了DataEvent和DataTransfer接口,同時當拖拽操作發(fā)生時會觸發(fā)如 dragstart, dragenter, dragleave, drop, dragend等事件。

Web Workers: 讓Javascript多線程,可以在后臺做很多工作而不會阻斷當前的瀏覽器操作。

Geolocation: 地理位置定位,運行navigator.geolocation.getCurrentPosition(success,error)這個方法時瀏覽器會提示是否要共享你的地理位置,如果選擇共享,則會回調success函數(shù),success函數(shù)有一個參數(shù)是position對象,這個position對象有一個coords對象,coords對象包含了很多地理位置信息如latitude(維度)和longitude(經(jīng)度),這樣就可以知道你的具體位置了,這個功能在一些手機如Iphone上已經(jīng)有廣泛的應用了。

Application Cache: 這是HTML5對于離線應用的支持,通過在html元素上加一個屬性manifest,瀏覽器會提示你是否要將數(shù)據(jù)緩存到客戶端,如果用戶選擇了允許,則會按照指定的manifest文件列表緩存需要的文件,當你的網(wǎng)絡不可用時,你還是可以使用這個應用的。對于離線應用,Google也開發(fā)了Google Gears瀏覽器擴展,不過最后Google轉投HTML5可能也是看到了HTML5存儲和離線應用的這種優(yōu)勢。

Storage: Webkit已經(jīng)實現(xiàn)了database storage,你可以像后端操作數(shù)據(jù)庫一樣查詢數(shù)據(jù)并執(zhí)行一些操作。還有一種存儲是鍵值對存儲,如sessionStorage和localStorage,可以通過setItem和getItem來存儲與獲取值,相對于Cookie的存儲來說,存儲的容量要大很多。

X-Document Messaging: 瀏覽器因為安全和隱私的原因,阻止了不同域之間文檔的通信,雖然這是一個安全限制,但是對于那些沒有危害的不同域的文檔通信帶來了很多問題,但是HTML 5可以實現(xiàn)這種跨文檔通信,讓我們可以不用管源域是來自哪里,同時可以防止腳本攻擊。

CSS3對于我們Web開發(fā)者來說不只是新奇的技術,更重要的是這些全新概念的web應用給我們帶來更多無限的可能性,也極大地提高了我們的開發(fā)效率。我們將不必再依賴圖片或者Javascript 去完成圓角、多背景、用戶自定義字體、3D動畫、漸變、盒陰影、文字陰影、透明度等提高Web設計質量的特色應用。

CSS3在選擇器上面的支持利用屬性選擇器我們可以根據(jù)屬性值的開頭或結尾很容易選擇某個元素,利用兄弟選擇器可以選擇同級兄弟結點或緊鄰下一個結點的元素,利用偽類選擇器可以選擇某一類元素,CSS3在選擇器上的豐富支持讓我們可以靈活的控制樣式,而不必為了選擇某些元素給他們加上如”odd”或”even”這樣的類名。

CSS3在樣式上的支持有一個調查說開發(fā)者最期待CSS3的特性是什么,最后票數(shù)最多的是“圓角”,不錯,圓角這個功能可以給我們這些前端工程師省去很多時間和精力去切圖拼湊一個圓角。CSS3還支持陰影,盒陰影以及文本陰影,漸變,之前你可能是通過IE的濾鏡看到過,其實CSS3實現(xiàn)起來更加方便。@font-face可以自定義字體,如果用傳統(tǒng)的方式,VD把一個帶有特殊文字的設計圖給你讓你來實現(xiàn)的話你可能會把它做成一個圖片,而通過CSS3用@font-face就可以了。

CSS3對于連續(xù)文本換行也新增了一個屬性word-wrap,你可以設置其為normal(不換行)或break-word(換行),這解決了連續(xù)英文字符出現(xiàn)頁面錯位的問題,也不需要后端去截取這個連續(xù)字符。使用CSS3你還可以給邊框加背景,這在iphone上也有應用的例子。CSS3在背景上支持背景調整大小,如當你用一張大圖要做一個小的元素背景時可以通過background-size來調整背景圖的大小來適應這個元素。

CSS3支持opacity, rgba和hsl/a, opacity和rgba的區(qū)別是opacity設置的透明對其內容也會產(chǎn)生影響,而rgba只對你應用的元素產(chǎn)生影響。CSS3在布局上對于盒模型提供了支持,可以設置box-sizing為content-box或border-box,應用為content-box就是正常的模式,而應用為border-box和IE5.5的盒模型很相似,即元素的寬度包括border和padding,這個在布局上可能會比較方便,不用去管到底這個元素會占用多大的寬度,而用content-box還需要手動計算一下這個元素實際占用的寬度。

CSS3對于動畫的支持CSS3支持的動畫類型有:transform(變換)、transition(過渡)和animation(動畫)。你可以對特定的屬性設置transition,transiton和animation的區(qū)別不大,animation的動畫是自己定義的,面向的更多的是腳本開發(fā)者,往往更加復雜。

為了使用大部分CSS3特性,我們不得不與原來的屬性一起使用生產(chǎn)商專有擴展。原因是直到現(xiàn)在,大部分瀏覽器只支持部分CSS3屬性。最常見的私有屬性是用于Webkit核心瀏覽器的(比如, Safari), 它們以-webkit-開始,以及Gecko核心的瀏覽器(比如, Firefox),以-moz-開始,還有Konqueror (-khtml-)、Opera (-o-) 以及Internet Explorer (-ms-)都有它們自己的屬性擴展(目前只有IE8支持-ms-前綴)。

那我們在開發(fā)中該如何去用CSS3呢?我覺得首先是遵循一個優(yōu)雅降級的原則,比如前面談到的圓角,我們可以針對Firefox和Safari等這些支持圓角的瀏覽器中應用CSS圓角,而那些不支持CSS圓角的瀏覽器則顯示為直角。其次就是對于不支持CSS3的瀏覽器可以使用Javascript來實現(xiàn),如CSS3任何元素支持:hover偽類,我們就可以對只支持鏈接:hover的IE6用JS來實現(xiàn)。最后就是在向用戶或老板推廣新技術的同時也要關注他們的目標與可行性,不能為了技術而技術。

【編輯推薦】

  1. 檢測瀏覽器是否支持CSS3的方法
  2. HTML5標準最新技術預覽
  3. HTML 5的使命與承諾
  4. 基于JavaScript的相關CSS技術概覽
  5. CSS 3中的炫目新功能搶先預覽
責任編輯:王曉東 來源: 中國建站
相關推薦

2011-03-22 08:54:02

HTML 5CSS3JavaScript

2012-05-11 09:37:34

HTML5

2012-05-24 11:03:55

HTML5

2012-02-29 09:27:36

ibmdw

2011-11-25 13:18:40

HTML 5

2011-08-30 16:39:34

HTML 5

2011-07-15 09:10:44

HTML 5CSS3

2012-04-10 10:31:07

2013-03-04 14:13:13

HTML5CSS3響應式

2012-05-30 09:22:56

Hybrid App助HTML5JavaScript

2013-07-09 09:24:29

響應式HTML5CSS3

2011-11-17 09:24:27

HTML 5

2011-11-18 13:25:48

HTML 5

2013-08-21 13:19:33

HTML5CSS3表單設計

2011-06-17 08:54:38

HTML 5CSS3

2011-09-21 11:02:17

HTML 5

2011-01-25 09:16:33

HTML 5CSS3Web

2012-01-12 11:05:05

響應式Web設計

2012-02-29 15:46:48

HTML 5

2011-11-11 10:01:37

HTML 5
點贊
收藏

51CTO技術棧公眾號