亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

HTML5和CSS3新的WEB標準和瀏覽器支持

2024-09-05 07:11:29
字體:
來源:轉載
供稿:網友
好罷這篇本來是我私下做的筆記,我特別喜歡在evernote上做備忘的筆記,雖然上次看到漏屋老師的文章里說我現在的年齡才剛剛進入記憶力的巔峰期……但是我的自信心仍然屢受打擊!比如跟別人討論the dark knight里小丑在醫院對檢察官說了什么讓他變成雙面人,我一句對白都想不起來,還有big bang theory s2里penny玩age of conan時的人物名字是”queen penelope”,我看的時候印象很深,一個月后就連奧德賽都想不起來了。留份筆記總覺得心里踏實些……啊又跑題了

本文整理了一些最重要(或者說人氣比較高罷)的新標準,雖然它們多數還只是w3c的草案,離recommendation級別還早,卻已經成為新一輪瀏覽器大戰中備受追捧的明星,開發者社區里也涌現出大量相關的demo和api封裝,有些已經進入生產環境(比如google在iphone上實現的gmail離線應用),其實我覺得如今的web領域里,從廠商私有技術轉換成委員會標準再轉換成通用技術產生殺手級應用的周期已經顯著的加速了,是因為現在web application的需求太高了么…… update:剛才在solidot發軟文的時候我突然想明白怎么表述這個問題:其實現在很多瀏覽器廠商同時也是基于瀏覽器的應用開發者和web標準的制定者,就好像修筑舞臺的工程師同時也是舞臺上的演員和舞蹈動作的導演一樣,所以google, mozilla, apple們都在不遺余力的實現那些有利于開發web應用的技術標準,即時它們還是w3c working draft,相比之下ie team就比較缺乏動力,果然計劃經濟缺乏活力亞xd……

由于是源自筆記,對每個條目我只會列出稱呼和語法特征,暫時沒時間寫詳細的解釋和可執行的示例,但是會給出相關的文檔地址,除了列出已經支持該特性的瀏覽器,也會為不支持的瀏覽器提供替代/過渡的實現。

===================廢話結束的分割線=======================

css3 media queries

對整個外鏈css文件和部分css代碼使用的媒體類型偵測,人氣高的原因顯然是因為移動設備……

  1. <link media=“all and (orientation:portrait)” src="screen.css" type="text/css">
  1. @media all and (min-color: 4) { ... }

w3c標準:http://www.w3.org/tr/css3-mediaqueries/
mdc文檔:https://developer.mozilla.org/en/css/media_queries
opera文檔:http://www.opera.com/docs/specs/css/

支持:firefox 3.5+, safari 3+, opera 7+

css3 2d transforms

css變形,有人用這個實現偽3d效果以及旋轉效果的jquery插件

  1. -moz-transform: rotate(-45deg) skew(15deg, 15deg);
  1. sprite.style['-webkit-transform'] = 'rotate(' + v + 'rad)';

w3c標準:http://www.w3.org/tr/css3-2d-transforms/
mdc文檔:https://developer.mozilla.org/en/css/css_transform_functions
webkit博客的介紹: http://webkit.org/blog/130/css-transforms/

支持:firefox 3.5+, safari 3.1+
替代/過渡:ie5.5+ matrix filter http://msdn.microsoft.com/en-us/library/ms533014(vs.85).aspx

css3 transitions and css animations

備受期待的css動畫,webkit團隊提出的草案,transition實現簡單的屬性漸變,animation定義更復雜的動畫效果

  1. transition-property: width;
  2. transition-duration: 1s;
  3.  
  4. animation-name: 'diagonal-slide';
  5. animation-duration: 5s;
  6. animation-iteration-count: 10;
  7. @keyframes 'diagonal-slide' {}

w3c標準:http://www.w3.org/tr/css3-transitions/
w3c標準:http://www.w3.org/tr/css3-animations/
webkit博客的介紹:http://webkit.org/blog/138/css-animation/
約翰同學的介紹:http://ejohn.org/blog/css-animations-and-javascript/

支持:safari 3.1+

css3 downloadable fonts

能在網頁里嵌入任意字體是設計師的夢想……不過這里支持的也僅限truetype和opentype

  1. @font-face {}

w3c標準:http://www.w3.org/tr/css3-fonts/#font-resources
msdn文檔:http://msdn.microsoft.com/en-us/library/ms530303(vs.85).aspx
mdc文檔:https://developer.mozilla.org/en/css/@font-face

支持:firefox 3.5+, safari 3.1+, opera 10.0+, ie4.0+

附贈:其他css3 property的兼容性

ppk同學維護的文檔: http://www.quirksmode.org/css/contents.html
css3.info維護的文檔:http://www.css3.info/modules/selector-compat/
一個測試頁面:http://westciv.com/iphonetests/

html5 dom storage

簡潔的持久存儲,鍵值對的形式

  1. window.localstorage
  2. window.sessionstorage //可跨域,標簽頁關掉就清空

w3c標準:http://www.w3.org/tr/webstorage/
ppk同學維護的兼容性列表:http://www.quirksmode.org/dom/html5.html#localstorage
mdc文檔:https://developer.mozilla.org/en/dom/storage
msdn文檔:http://msdn.microsoft.com/en-us/library/cc197062(vs.85).aspx

支持:firefox 3.5+, safari 4.0+, ie 8.0+

html5 offline application cache

用一個manifest文件緩存靜態資源(圖片,css, js之類)在離線狀態下使用,不是結構化數據

  1. <html manifest="foo.manifest">
  1. cache manifest
  2. index.html
  3. style/default.css
  4. images/logo.png

w3c標準:http://www.w3.org/tr/offline-webapps/#offline
mdc文檔:https://developer.mozilla.org/en/offline_resources_in_firefox

支持:firefox 3.5+

html5 database storage

本地數據庫,支持sql,最早是google gears實現,現在的w3c草案的編輯也是google的工程師……但奇怪的是,gears的api跟現在的草案不兼容,chrome甚至為了保留捆綁的gears的數據庫api而刪除了webkit實現的html5 api……而google在iphone上實現gmail離線功能的時候又采用webkit的api……真糾結……

  1. var db = window.opendatabase("notes", "", "the example notes app!", 1048576);
  2. db.transaction(function(tx) {
  3. tx.executesql(select * from notes’, [], function(tx, rs) {});
  4. });

w3c標準:http://www.w3.org/tr/offline-webapps/#sql
webkit博客的介紹:http://webkit.org/blog/126/webkit-does-html5-client-side-database-storage/
iphone的文檔:http://developer.apple.com/documentation/iphone/conceptual/safarijsdatabaseguide/usingthejavascriptdatabase/usingthejavascriptdatabase.html#//apple_ref/doc/uid/tp40007256-ch3-sw1

支持:safari 3.1+
替代/過渡:gears http://code.google.com/p/gears/wiki/database2api

html5 web workers

多線程,在后臺執行復雜運算,不能操作dom,線程之間通過消息事件通信

  1. var myworker = new worker('my_worker.js');
  2. myworker.onmessage = function(event) { event.data };
  3. myworker.postmessage(str);

w3c標準:http://www.w3.org/tr/workers/
mdc文檔:https://developer.mozilla.org/en/using_web_workers

支持:firefox 3.5+
替代/過渡:gears http://code.google.com/p/gears/wiki/html5workerproposal

html5 geolocation

地理api

  1. window.navigator.geolocation

w3c標準:http://www.w3.org/tr/geolocation-api/
mdc文檔:https://developer.mozilla.org/en/using_geolocation

支持:firefox 3.5+
替代/過渡:gears http://code.google.com/p/gears/wiki/geolocationapi

html5 drag and drop

原生拖拽事件

  1. ondragstart
  2. ondrag
  3. ondragend
  4. //拖拽過程中
  5. ondragenter
  6. ondragover
  7. ondragleave
  8. ondrop

w3c標準:http://www.w3.org/tr/html5/editing.html#dnd
mdc文檔:https://developer.mozilla.org/en/dragdrop/drag_and_drop
apple文檔:http://developer.apple.com/documentation/appleapplications/conceptual/safarijsprogtopics/tasks/draganddrop.html#//apple_ref/doc/uid/30001233

支持:firefox 3.5+, safari 2.0+, chrome 1.0+, ie 5.0+

html5 audio and video

用html標簽來嵌入視頻音頻的好處并非是“開源格式”,而是“開放性”,讓多媒體可以與其他頁面元素交互,或者用頁面技術去跟視頻“mashup”,這種隨意組合和交互的能力是web技術興盛的基石,也是像flash這類封閉ria容器最大的缺點。

  1. <video controls>
  2. <source src=“zombie.oggtype=“video/ogg/>
  3. <source src=“zombie.mp4type=“video/mp4/>
  4. </video>

mdc文檔:https://developer.mozilla.org/en/using_audio_and_video_in_firefox
webkit博客的介紹:http://webkit.org/blog/140/html5-media-support/

支持:firefox 3.5+, safari 3.0+, chrome 3.0+
替代/過渡:用video標簽嵌套embed http://hacks.mozilla.org/2009/06/html5-video-fallbacks-markup/

html5 canvas

apple發明,最早應用于dashboard,目前主流的js圖像技術,mozilla已經在實現opengl es標準的canvas 3d了,另外據說ie team為支持canvas做了大量工作……實際上canvas api相當底層,特別是交互方面,不如svg直觀,所以出現了很多封裝它的庫

  1. var ctx = $('#canvas')[0].getcontext("2d");
  2. ctx.fillstyle = "#00a308";
  3. ctx.beginpath();
  4. ctx.arc(220, 220, 50, 0, math.pi*2, true);
  5. ctx.closepath();
  6. ctx.fill();

mdc文檔:https://developer.mozilla.org/en/canvas_tutorial

支持:firefox 1.5+, safari 2.0+, chrome 1.0+, opera 9.0+
替代/過渡:excanvas.js http://code.google.com/p/explorercanvas/

svg

w3c標準:http://www.w3.org/tr/svg12/
ibm dw教程:http://www.ibm.com/developerworks/cn/views/xml/tutorials.jsp?cv_doc_id=84896

支持:firefox 1.5+, safari 3.0+, chrome 1.0+, opera 9.0+
替代/過渡:raphael.js http://raphaeljs.com/

xmlhttprequest 2

主要是增加跨域能力以及請求過程中的事件

w3c標準:http://www.w3.org/tr/xmlhttprequest2/
mdc文檔:https://developer.mozilla.org/en/using_xmlhttprequest#monitoring_progress
xdomainrequest (xdr)
msdn文檔:http://msdn.microsoft.com/en-us/library/cc288060(vs.85).aspx

支持:firefox 3.5+(實現了部分), ie 8.0+(實現了部分)

access control

千呼萬喚的跨域訪問控制,目前firefox3.5和ie8有一些不同,ie8搞的xdr和xdm我也不知道是不是準備提交給w3c標準化的東西……

  1. access-control-allow-origin: http://foo.example

w3c標準:http://www.w3.org/tr/cors/
mdc文檔:https://developer.mozilla.org/en/http_access_control
cross-document messaging (xdm)
msdn文檔:http://msdn.microsoft.com/en-us/library/cc197057(vs.85).aspx

支持:firefox 3.5+, ie8.0+

e4x (ecma-357)

firefox和actionscript3早就實現了的東西……不過其實現在json這么流行,有沒有e4x好像都無所謂了~(瞎說的,其實在js代碼里直接寫dom對象而不是html字符串,會方便很多)

mdc文檔:https://developer.mozilla.org/en/e4x

支持:firefox 1.5+

ecmascript 5 native json

原生的json支持,速度和安全性都比eval強一百倍亞一百倍,另外要注意douglas crockford的json2.js是一個用js實現的js解釋器,所以安全性更好

  1. json.parse( text, translate )
  2. json.stringify( obj, translate )
  3. string.prototype.tojson
  4. boolean.prototype.tojson
  5. number.prototype.tojson
  6. date.prototype.tojson

mdc文檔:http://blog.mozilla.com/webdev/2009/02/12/native-json-in-firefox-31/
msdn文檔:http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx

支持:firefox 3.5+, ie8+
替代/過渡:json2.js http://www.json.org/json2.js

ecmascript 5 array extras

js1.6里實現的數組方法,主要是foreach, map, fliter這幾個函數式編程里非常重要的方法,還有反向查詢

  1. array.prototype.indexof( str )
  2. array.prototype.lastindexof( str )
  3. array.prototype.every( fn )
  4. array.prototype.some( fn )
  5. array.prototype.filter( fn )
  6. array.prototype.foreach( fn )
  7. array.prototype.map( fn )

mdc文檔:https://developer.mozilla.org/en/new_in_javascript_1.6#array_extras

支持:firefox2.0+, safari 3.0+, google chrome 1.0+, opera 9.5+
替代/過渡:都可以通過擴展array.prototype來模擬

ecmascript 5 isarray()

區分數組和對象

  1. array.isarray([]); // true

支持:無
替代/過渡:array.isarray = function(a){ return object.prototype.tostring.call(a) === “[object array]”;};

ecmascript 5 object

用google i/o演講里的話來說:更魯棒(robust)的對象系統

  1. object.getprototypeof( obj )

約翰同學的講解:http://ejohn.org/blog/objectgetprototypeof/

支持:firefox3.5
替代/過渡:object.__proto__ 或 object.constructor.prototype

  1. object.create( proto, props ) //克隆或繼承對象
  2.  
  3. object.keys( obj ) //數據結構的映射
  4. object.getownpropertynames( obj )
  5.  
  6. object.preventextensions( obj ) //不能添加新屬性
  7. object.isextensible( obj )
  8.  
  9. object.seal( obj ) //不能刪除和修改屬性的配置,不能添加新屬性
  10. object.issealed( obj )
  11.  
  12. object.freeze( obj ) //不能刪除和修改屬性的配置,不能添加新屬性,不能寫屬性
  13. object.isfrozen( obj )

約翰同學的講解:http://ejohn.org/blog/ecmascript-5-objects-and-properties/

支持:無
替代/過渡:object.create和object.keys可以自己實現

ecmascript 5 property descriptor

對象屬性的訪問控制

  1. object.getownpropertydescriptor( obj, prop )
  2. object.defineproperty( obj, prop, desc )
  3. object.defineproperties( obj, props ) 
  4. desc = {
  5.      value: true,
  6.      writable: false, //修改
  7.      enumerable: true, //for in
  8.      configurable: true, //刪除和修改屬性
  9.      get: function(){ return name; },
  10.      set: function(value){ name = value; }
  11. }

約翰同學的講解:http://ejohn.org/blog/ecmascript-5-objects-and-properties/

支持:無
替代/過渡:object.defineproperties其實相當于jquery.extend,用來實現mixin

ecmascript 5 getters and setters

python和ruby里都有的屬性訪問方法

  1. obj = { 
  2.    get innerhtml() { return …; },
  3.    set innerhtml(newhtml) {} 
  4. };

mdc文檔:https://developer.mozilla.org/en/core_javascript_1.5_guide/creating_new_objects/defining_getters_and_setters

支持:firefox 2.0+, safari 3.0+, google chrome 1.0+, opera 9.5+
替代/過渡:

非標準,firefox1.5里的舊方法

  1. htmlelement.prototype.__definegetter__("innerhtml", function () {});
  2. htmlelement.prototype.__definesetter__("innerhtml", function (val) {});

支持:firefox 2.0+, safari 3.0+, google chrome 1.0+, opera 9.5+

標準

  1. object.defineproperty(document.body, "innerhtml", { get : function () {} });

msdn文檔:http://msdn.microsoft.com/en-us/library/dd229916(vs.85).aspx

支持:ie8+ (只能對dom使用)

ecmascript 5 strict mode

es5的嚴格模式,刪除了舊版本中容易引起問題的元素,并且會顯式的報錯,方便調試

  1. "use strict"; //以下情況下拋出異常
  2. //對未定義的變量賦值
  3. //操作被設置為不可寫,不可配置或不可擴充的屬性
  4. //刪除變量,函數,參數
  5. //在對象直接量里重復定義屬性
  6. //eval做關鍵字,在eval的字符串里定義變量
  7. //覆寫arguments
  8. //使用arguments.caller和arguments.callee(匿名函數必須具名才能引用自己)
  9. //(function(){ ... }).call( null ); // exception
  10. //使用with

約翰同學的講解:http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/

支持:無
替代/過渡:……從現在開始養成嚴謹的編程習慣

ecmascript 5 其他新特性

傳遞函數的引用時,綁定this

  1. function.prototype.bind(thisarg, arg1, arg2....) /

支持:無
替代/過渡:prototype http://www.prototypejs.org/api/function/bind

iso-formatted dates

  1. date.prototype.toisostring() // prints 2009-05-21t16:06:05.000tz

支持:無
替代/過渡:datejs http://code.google.com/p/datejs/

  1. string.prototype.trim()

支持:firefox3.5
替代/過渡:各種正則實現 http://blog.stevenlevithan.com/archives/faster-trim-javascript


===================廢話又開始的分割線=======================

其實我把這個東西發出來是希望能促進創新的氛圍,讓更多人認識到很多新技術已經進入到“實用”階段。

如果只是想做個實驗性的webgame,或是只能用于特定平臺的應用(比如iphone,greasemonkey),firefox3.5+webkit的支持就已經足夠罷。

如果不能無視主流平臺,有很多技術能讓你gracefully degrade(優雅的退化)或者選取不同的方法實現兼容的接口。

如果你等不及ie x在若干年后實現xx,希望提前享受福利,有些技術的設計原則就是讓你能在沒有native支持的情況下可以自己實現一模一樣的功能或語法糖(syntactic sugar),比如es5對象的繼承和訪問控制,從es4/actionscript3時期那些老土的關鍵詞(class extands private static)改成了object.create(p, attrs).defineproperty(o, n, attrs).defineproperties(o, attrs).freeze().getownpropertynames().map(fn),不會只是為了酷炫罷……

很多人都喜歡抱怨“我這輩子都沒機會用html5”,但是只要把視線從自己腳下那巴掌大塊地移開看看別處,會發現世界其實一直都在改變喔xd

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久网站| 欧美激情亚洲一区| 亚洲影院色在线观看免费| 久久精品成人欧美大片| 一本大道久久加勒比香蕉| 亚洲在线一区二区| 久久久久久久国产| 日韩av最新在线观看| 欧美寡妇偷汉性猛交| 国内久久久精品| 色999日韩欧美国产| 97视频色精品| 91在线高清视频| 精品视频9999| 亚洲九九九在线观看| 日韩av观看网址| 欧美另类老肥妇| 亚洲成人动漫在线播放| 九九九久久国产免费| 欧美午夜精品久久久久久人妖| 亚洲人成电影网站色xx| 国产91久久婷婷一区二区| 亚洲伊人第一页| 国模吧一区二区三区| 亚洲深夜福利在线| 国产精品九九久久久久久久| 国产精品久久久久一区二区| 亚洲free性xxxx护士白浆| 亚洲国产精品va在线看黑人动漫| 国产精品手机播放| 国产精品自产拍高潮在线观看| 伊人久久综合97精品| 色综合老司机第九色激情| 国产精品美女主播| 亚洲第一精品自拍| 狠狠爱在线视频一区| 伊人男人综合视频网| 91国产一区在线| 久久久久国产视频| 91精品在线观| 久久久999成人| 不卡av电影院| www.日韩不卡电影av| 亚洲va电影大全| 亚洲色图欧美制服丝袜另类第一页| 国产精品日本精品| 国产精品亚洲一区二区三区| 亚洲黄一区二区| 久久久久国产精品免费网站| 国产精品亚洲美女av网站| 日本免费久久高清视频| 免费99精品国产自在在线| 91香蕉嫩草神马影院在线观看| 91精品国产免费久久久久久| 国产精品久久久久久久av大片| 亚洲色图在线观看| 国产精品观看在线亚洲人成网| 日本久久91av| 国产精品高潮视频| 国产成人精品免费久久久久| 成人免费福利视频| 国产美女久久久| 亚洲黄色片网站| 日韩精品亚洲精品| 色综合色综合久久综合频道88| 久久影视电视剧凤归四时歌| 亚洲精品xxx| 成人精品视频99在线观看免费| 欧美成人四级hd版| 久久亚洲私人国产精品va| 黑人精品xxx一区| 伊人精品在线观看| 国产精品成久久久久三级| 欧美精品电影免费在线观看| 成人久久18免费网站图片| 欧美激情一区二区三区高清视频| xxxxxxxxx欧美| 91av视频在线观看| 国产精品自拍偷拍视频| 国产精品福利在线观看网址| 精品久久久久久久久久久久久| 日韩欧美在线视频免费观看| 久久久极品av| 日韩在线激情视频| 日韩久久免费电影| 久久精品中文字幕| 午夜剧场成人观在线视频免费观看| 欧美性受xxx| 国产99视频在线观看| 精品色蜜蜜精品视频在线观看| www.久久久久久.com| 亚洲福利视频免费观看| 日韩国产中文字幕| 狠狠久久五月精品中文字幕| 国产一区二区三区视频免费| 亚洲成人中文字幕| 日韩有码视频在线| 97在线视频免费看| 欧美有码在线观看| 日本人成精品视频在线| 欧美最猛性xxxxx免费| 欧美一区二区三区免费观看| 亚洲国产精品va在线看黑人| 人妖精品videosex性欧美| 少妇高潮久久77777| 国产精品免费一区| 91超碰caoporn97人人| 精品福利在线观看| 中日韩美女免费视频网站在线观看| 国产精品久久久久久久天堂| 欧美精品videos另类日本| 久久久精品在线观看| 奇米四色中文综合久久| 欧美国产日产韩国视频| 欧美另类高清videos| 国产精品久久久久久久久粉嫩av| 日韩欧中文字幕| 久久精品影视伊人网| 不卡中文字幕av| 亚洲色图35p| 欧美一区二粉嫩精品国产一线天| 日韩高清电影免费观看完整| 91国内精品久久| 精品视频在线播放| 欧美成人中文字幕在线| 欧美激情一区二区三区在线视频观看| 一区二区三区在线播放欧美| 欧美日韩国产精品专区| 亚洲成av人片在线观看香蕉| 欧美性受xxxx黑人猛交| 国产精品a久久久久久| 亚洲国语精品自产拍在线观看| 亚洲精品天天看| 日韩在线视频网站| 日韩av在线免费播放| 久久精品国产亚洲精品| 91精品国产电影| 亚洲第一中文字幕| 91av视频在线| 日韩av免费在线观看| 日韩精品视频中文在线观看| 国产在线观看一区二区三区| 国产一区二中文字幕在线看| 亚洲最大中文字幕| 九九久久精品一区| 日韩视频免费中文字幕| 亚洲欧洲黄色网| 97欧美精品一区二区三区| 亚洲第一精品久久忘忧草社区| 亚洲九九九在线观看| 色琪琪综合男人的天堂aⅴ视频| 日韩精品中文字幕久久臀| 亚洲天堂成人在线视频| 国产精品白嫩美女在线观看| 精品在线欧美视频| 亚洲天堂精品在线| 国产一区视频在线播放| 在线观看免费高清视频97| 国产成人综合一区二区三区| 欧美日韩国产在线| 91麻豆桃色免费看| 91九色国产社区在线观看| 欧美日韩精品在线视频| 国产精品久久久久久久久久新婚|