SlideShare a Scribd company logo
1 of 32
初识 HTML5 WOYO UED / 前端组 / 于海洋
HTML5 的诞生 1997年12月,W3C发布 HTML4.0  1998年12月,W3C发布 XHTML1.0 2001年5月,W3C发布 XHTML1.1  2004年6月,WHATWG 成立 MIME: application/xhtml+xml MIME: text/html
WHATWG Web Hypertext Application Technology Working Group
HTML5 的诞生 1997年12月,W3C发布 HTML4.0  1998年12月,W3C发布 XHTML1.0 2001年5月,W3C发布 XHTML1.1  2004年6月,WHATWG 成立 2006年10月,W3C 宣布与 WHATWG 合作开发下一代 HTML —— HTML5
2007 W3C HTML5 WG
关于2022年的神话 时间点一: 2012年发布候选推荐版 时间点二: 2022年发布计划推荐版 『2012』意味着 HTML5 规范编写完成 『2022』届时将至少有2个浏览器可以互通实现 HTML5
HTML5 关键词 兼容性和存在即合理 效率和用户优先 化繁为简 通用访问
HTML5: 兼容性和存在即合理 新特性的平滑过渡,向后兼容 <input type="search" placeholder="请输入搜索关键字" /> 不支持 HTML5 的浏览器会将之解析为: <input type="text" /> 存在即合理 <div id="header"></div> <header> <article> <footer>
HTML5: 效率和用户优先 当遇到无法解析的冲突时 用户  v 页面作者  v  实现者(浏览器) v 规范制定者(W3C)
HTML5: 化繁为简 简化文档声明 <!DOCTYPE HTML> 简化字符集声明 <meta charset="UTF-8" /> 以浏览器原生能力代替复杂的Javascriptwindow.JSON、DOM Level 3 简单而强大的 HTML5 APIHTML5 表单、Selector API
HTML5: 通用访问 可访问性 媒体中立 支持所有语种
HTML5 新特性
语义化标签
<!DOCTYPE HTML> <html lang="zh-cn"> <head>     <meta charset="UTF-8" />     <title>WOYO UED</title>    <link rel="stylesheet" href="style.css" />    <script src="script.js"></script> </head> <body> <header>         <h1>WOYO UED</h1> <nav>             <a href="#">Home</a>            <a href="#">Product</a>            <a href="#">About</a> </nav> </header>
   <section>         <article> <header> <h1>Article Title</h1> <time datetime="2011-02-25">February 25, 2011</time> </header>             <p>Article Content...</p> </article><article> <header> <h1>Article Title</h1> <time datetime="2011-02-25">February 25, 2011</time> </header>             <p>Article Content...</p> </article>     </section>     <footer>         <p>&copy; 2011 WOYO.COM</p> </footer> </body> </html>
浏览器如何处理未知元素 <article> 	<h1>Hello World!</h1> 	<p>Touching HTML5, <span>Enjoy Web</span>.</p> </article>
DOM 结构 预想 article | + -- h1  |     |  |    + -- 文本节点"Hello World!" + -- p       |      + -- 文本节点 "Touching HTML5"       |      + -- span       |       |        |      + -- 文本节点 "Enjoy Web"       |       + -- 文本节点  "." 实际(IE) article (无子节点) h1(article 的兄弟节点)  | + --文本节点"Hello World!" p(h1的兄弟节点)  | + -- 文本节点 "Touching HTML5"  |     + -- span  |       |  |       + -- 文本节点 "Enjoy Web" |  + -- 文本节点 "."
HTML5 SHIV <script type="text/javascript"> 	var html5 = "abbr,article,aside,audio,bb,canvas,datagrid,datalist,details,dialog,eventsource,figure,footer,hgroup,header,mark,menu,meter,nav,output,progress,section,time,video".split(',');     for(var i = 0, len = html5.length; i < len; i++ ) { document.createElement(html5[i]);     } </script> 在IE上,使用 javascript 创建一个虚假的 <article> 元素,IE就可以奇迹般地识别 <article> 标签了,并允许给他设定CSS样式。
HTML5 SHIV <!--[if lt IE 9]> <script src="http://static.woyo.com/js/public/util/html5.js"></script> <![endif]-->
检测浏览器支持状况 function support_canvas(){ 	return !!document.createElement('canvas').getContext(); } Modernizr: <script src="modernizr.min.js"></script> <script type="text/javascript"> 	if(Modernizr.canvas){ 		//开始画图 	}else{ 		//浏览器没有提供原始canvas 	} </script>
HTML5 API
Canvas <canvas></canvas> var canvas = document.getElementById('myCanvas'); var context = canvas.getContext('2d'); context.beginPath(); context.moveTo(0,0); context.lineTo(300,300); context.strokeStyle = 'green'; //将这条线绘制到画布上 context.stroke(); context.restore();
Canvas <canvas></canvas> 注意: canvas 默认是一个 inline-block 元素 canvas 默认尺寸: 宽 300px,高 150px 使用CSS定义canvas尺寸只是将画布缩放 使用 width height 属性来定义画布尺寸<canvas width="300" height="300"></canvas> canvas 实例 http://www.theshodo.com
Video & Audio 视频标签    <video controls width="450" height="300">	<source src="movie.webm" type='video/webm; codecs="vp8, vorbis"'> <source src="movie.mp4"  type='video/mp4'><embed src="http://player.youku.com/player.php/sid/XMjIyMTQxMDg0/v.swf" width="450" height="300" type="application/x-shockwave-flash"></embed>    </video> video 实例 http://www.apple.com/html5/showcase/video/
Video & Audio 音频标签      <audio controls autoplay>	<source src="music.ogg"></source> 	<source src="music.mp3"></source> <embed src="music.mp3" width="300" height="52"></embed>    </audio> 注意: 由于音频/视频解码器专利的原因,目前各个浏览器对 Audio 和 Video 支持的文件格式还未达成统一的标准
Forms <input type="email" /> <input type="tel" /> <input type="url" /> <input type="search" /> <input type="range" /> <input type="date" /> <input type="time" />   … <input type="file" multiple /> <input … autofocus /> <input … autocomplete/>
Forms 注意: HTML5 规范大幅提升了浏览器内置表单的检测能力,但是永远不要忘记数据的服务器端验证
Web Storage sessionStorage  window.sessionStorage.setItem('myKey', 'myValue'); window.sessionStorage.getItem('myKey');window.sessionStorage.removeItem('myKey'); window.sessionStorage.myKey = 'myValue';window.sessionStorage['myKey'] = 'myValue'; sessionStorage: 使用此方式存储的数据只能在当前窗口中调用。
Web Storage localStorage  window.localStorage.setItem('myKey', 'myValue'); window.localStorage.getItem('myKey');window.localStorage.removeItem('myKey'); window.localStorage.myKey = 'myValue';window.localStorage['myKey'] = 'myValue'; localStorage: 除非删除否则一直可用,相当于增强版的cookie	        (每个域拥有5M的存储空间) localStorage 实例 http://goo.gl/WVEFo

More Related Content

Similar to 初识 Html5

Chico-UI en escuela DaVinci
Chico-UI en escuela DaVinciChico-UI en escuela DaVinci
Chico-UI en escuela DaVinciNatan Santolo
 
Aspetos gerais de desenvolvimento web.
Aspetos gerais de desenvolvimento web.Aspetos gerais de desenvolvimento web.
Aspetos gerais de desenvolvimento web.Corcioli
 
HTML&CSS 1 - Introduction to HTML
HTML&CSS 1 - Introduction to HTMLHTML&CSS 1 - Introduction to HTML
HTML&CSS 1 - Introduction to HTMLDinis Correia
 
Komplexe Sites sauber aufbauen
Komplexe Sites sauber aufbauenKomplexe Sites sauber aufbauen
Komplexe Sites sauber aufbauenJens Grochtdreis
 
20 种提升网页速度的技巧
20 种提升网页速度的技巧20 种提升网页速度的技巧
20 种提升网页速度的技巧wensheng wei
 
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиковCodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиковCodeFest
 
夜宴16期《变化ing》
夜宴16期《变化ing》夜宴16期《变化ing》
夜宴16期《变化ing》Koubei Banquet
 
Einfuehrung in YAML (2010)
Einfuehrung in YAML (2010)Einfuehrung in YAML (2010)
Einfuehrung in YAML (2010)Jens Grochtdreis
 
面向工程师的HTML
面向工程师的HTML面向工程师的HTML
面向工程师的HTMLjay li
 
面向对象的CSS
面向对象的CSS面向对象的CSS
面向对象的CSSJerry Xie
 
Seminario Ruby On Rails Aula Open Source
Seminario Ruby On Rails Aula Open SourceSeminario Ruby On Rails Aula Open Source
Seminario Ruby On Rails Aula Open SourceSergio Alonso
 
Mini charla jquery
Mini charla jqueryMini charla jquery
Mini charla jquerylizardoceliz
 
HTML5 WebSocket 발표 자료
HTML5 WebSocket 발표 자료HTML5 WebSocket 발표 자료
HTML5 WebSocket 발표 자료Zany Lee
 
Tech conf2009 eiji_shinohara
Tech conf2009 eiji_shinoharaTech conf2009 eiji_shinohara
Tech conf2009 eiji_shinoharaEiji Shinohara
 
04 practical symfony 4дөх
04 practical symfony 4дөх04 practical symfony 4дөх
04 practical symfony 4дөхtuvshinmgl
 

Similar to 初识 Html5 (20)

Chico-UI en escuela DaVinci
Chico-UI en escuela DaVinciChico-UI en escuela DaVinci
Chico-UI en escuela DaVinci
 
Aspetos gerais de desenvolvimento web.
Aspetos gerais de desenvolvimento web.Aspetos gerais de desenvolvimento web.
Aspetos gerais de desenvolvimento web.
 
Der lachende Dritte
Der lachende DritteDer lachende Dritte
Der lachende Dritte
 
HTML&CSS 1 - Introduction to HTML
HTML&CSS 1 - Introduction to HTMLHTML&CSS 1 - Introduction to HTML
HTML&CSS 1 - Introduction to HTML
 
Html Frameset
Html FramesetHtml Frameset
Html Frameset
 
Komplexe Sites sauber aufbauen
Komplexe Sites sauber aufbauenKomplexe Sites sauber aufbauen
Komplexe Sites sauber aufbauen
 
20 种提升网页速度的技巧
20 种提升网页速度的技巧20 种提升网页速度的技巧
20 种提升网页速度的技巧
 
Wordpress avançat
Wordpress avançatWordpress avançat
Wordpress avançat
 
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиковCodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
 
Rails iPhone App
Rails iPhone AppRails iPhone App
Rails iPhone App
 
夜宴16期《变化ing》
夜宴16期《变化ing》夜宴16期《变化ing》
夜宴16期《变化ing》
 
MS Swit 2010
MS Swit 2010MS Swit 2010
MS Swit 2010
 
Einfuehrung in YAML (2010)
Einfuehrung in YAML (2010)Einfuehrung in YAML (2010)
Einfuehrung in YAML (2010)
 
面向工程师的HTML
面向工程师的HTML面向工程师的HTML
面向工程师的HTML
 
面向对象的CSS
面向对象的CSS面向对象的CSS
面向对象的CSS
 
Seminario Ruby On Rails Aula Open Source
Seminario Ruby On Rails Aula Open SourceSeminario Ruby On Rails Aula Open Source
Seminario Ruby On Rails Aula Open Source
 
Mini charla jquery
Mini charla jqueryMini charla jquery
Mini charla jquery
 
HTML5 WebSocket 발표 자료
HTML5 WebSocket 발표 자료HTML5 WebSocket 발표 자료
HTML5 WebSocket 발표 자료
 
Tech conf2009 eiji_shinohara
Tech conf2009 eiji_shinoharaTech conf2009 eiji_shinohara
Tech conf2009 eiji_shinohara
 
04 practical symfony 4дөх
04 practical symfony 4дөх04 practical symfony 4дөх
04 practical symfony 4дөх
 

初识 Html5

  • 1. 初识 HTML5 WOYO UED / 前端组 / 于海洋
  • 2. HTML5 的诞生 1997年12月,W3C发布 HTML4.0 1998年12月,W3C发布 XHTML1.0 2001年5月,W3C发布 XHTML1.1 2004年6月,WHATWG 成立 MIME: application/xhtml+xml MIME: text/html
  • 3. WHATWG Web Hypertext Application Technology Working Group
  • 4. HTML5 的诞生 1997年12月,W3C发布 HTML4.0 1998年12月,W3C发布 XHTML1.0 2001年5月,W3C发布 XHTML1.1 2004年6月,WHATWG 成立 2006年10月,W3C 宣布与 WHATWG 合作开发下一代 HTML —— HTML5
  • 6. 关于2022年的神话 时间点一: 2012年发布候选推荐版 时间点二: 2022年发布计划推荐版 『2012』意味着 HTML5 规范编写完成 『2022』届时将至少有2个浏览器可以互通实现 HTML5
  • 7.
  • 8.
  • 9. HTML5 关键词 兼容性和存在即合理 效率和用户优先 化繁为简 通用访问
  • 10. HTML5: 兼容性和存在即合理 新特性的平滑过渡,向后兼容 <input type="search" placeholder="请输入搜索关键字" /> 不支持 HTML5 的浏览器会将之解析为: <input type="text" /> 存在即合理 <div id="header"></div> <header> <article> <footer>
  • 11. HTML5: 效率和用户优先 当遇到无法解析的冲突时 用户 v 页面作者 v 实现者(浏览器) v 规范制定者(W3C)
  • 12. HTML5: 化繁为简 简化文档声明 <!DOCTYPE HTML> 简化字符集声明 <meta charset="UTF-8" /> 以浏览器原生能力代替复杂的Javascriptwindow.JSON、DOM Level 3 简单而强大的 HTML5 APIHTML5 表单、Selector API
  • 13. HTML5: 通用访问 可访问性 媒体中立 支持所有语种
  • 16.
  • 17. <!DOCTYPE HTML> <html lang="zh-cn"> <head> <meta charset="UTF-8" /> <title>WOYO UED</title> <link rel="stylesheet" href="style.css" /> <script src="script.js"></script> </head> <body> <header> <h1>WOYO UED</h1> <nav> <a href="#">Home</a> <a href="#">Product</a> <a href="#">About</a> </nav> </header>
  • 18. <section> <article> <header> <h1>Article Title</h1> <time datetime="2011-02-25">February 25, 2011</time> </header> <p>Article Content...</p> </article><article> <header> <h1>Article Title</h1> <time datetime="2011-02-25">February 25, 2011</time> </header> <p>Article Content...</p> </article> </section> <footer> <p>&copy; 2011 WOYO.COM</p> </footer> </body> </html>
  • 19. 浏览器如何处理未知元素 <article> <h1>Hello World!</h1> <p>Touching HTML5, <span>Enjoy Web</span>.</p> </article>
  • 20. DOM 结构 预想 article | + -- h1 | | | + -- 文本节点"Hello World!" + -- p | + -- 文本节点 "Touching HTML5" | + -- span | | | + -- 文本节点 "Enjoy Web" | + -- 文本节点 "." 实际(IE) article (无子节点) h1(article 的兄弟节点) | + --文本节点"Hello World!" p(h1的兄弟节点) | + -- 文本节点 "Touching HTML5" | + -- span | | | + -- 文本节点 "Enjoy Web" | + -- 文本节点 "."
  • 21. HTML5 SHIV <script type="text/javascript"> var html5 = "abbr,article,aside,audio,bb,canvas,datagrid,datalist,details,dialog,eventsource,figure,footer,hgroup,header,mark,menu,meter,nav,output,progress,section,time,video".split(','); for(var i = 0, len = html5.length; i < len; i++ ) { document.createElement(html5[i]); } </script> 在IE上,使用 javascript 创建一个虚假的 <article> 元素,IE就可以奇迹般地识别 <article> 标签了,并允许给他设定CSS样式。
  • 22. HTML5 SHIV <!--[if lt IE 9]> <script src="http://static.woyo.com/js/public/util/html5.js"></script> <![endif]-->
  • 23. 检测浏览器支持状况 function support_canvas(){ return !!document.createElement('canvas').getContext(); } Modernizr: <script src="modernizr.min.js"></script> <script type="text/javascript"> if(Modernizr.canvas){ //开始画图 }else{ //浏览器没有提供原始canvas } </script>
  • 25. Canvas <canvas></canvas> var canvas = document.getElementById('myCanvas'); var context = canvas.getContext('2d'); context.beginPath(); context.moveTo(0,0); context.lineTo(300,300); context.strokeStyle = 'green'; //将这条线绘制到画布上 context.stroke(); context.restore();
  • 26. Canvas <canvas></canvas> 注意: canvas 默认是一个 inline-block 元素 canvas 默认尺寸: 宽 300px,高 150px 使用CSS定义canvas尺寸只是将画布缩放 使用 width height 属性来定义画布尺寸<canvas width="300" height="300"></canvas> canvas 实例 http://www.theshodo.com
  • 27. Video & Audio 视频标签 <video controls width="450" height="300"> <source src="movie.webm" type='video/webm; codecs="vp8, vorbis"'> <source src="movie.mp4" type='video/mp4'><embed src="http://player.youku.com/player.php/sid/XMjIyMTQxMDg0/v.swf" width="450" height="300" type="application/x-shockwave-flash"></embed> </video> video 实例 http://www.apple.com/html5/showcase/video/
  • 28. Video & Audio 音频标签 <audio controls autoplay> <source src="music.ogg"></source> <source src="music.mp3"></source> <embed src="music.mp3" width="300" height="52"></embed> </audio> 注意: 由于音频/视频解码器专利的原因,目前各个浏览器对 Audio 和 Video 支持的文件格式还未达成统一的标准
  • 29. Forms <input type="email" /> <input type="tel" /> <input type="url" /> <input type="search" /> <input type="range" /> <input type="date" /> <input type="time" /> … <input type="file" multiple /> <input … autofocus /> <input … autocomplete/>
  • 30. Forms 注意: HTML5 规范大幅提升了浏览器内置表单的检测能力,但是永远不要忘记数据的服务器端验证
  • 31. Web Storage sessionStorage window.sessionStorage.setItem('myKey', 'myValue'); window.sessionStorage.getItem('myKey');window.sessionStorage.removeItem('myKey'); window.sessionStorage.myKey = 'myValue';window.sessionStorage['myKey'] = 'myValue'; sessionStorage: 使用此方式存储的数据只能在当前窗口中调用。
  • 32. Web Storage localStorage window.localStorage.setItem('myKey', 'myValue'); window.localStorage.getItem('myKey');window.localStorage.removeItem('myKey'); window.localStorage.myKey = 'myValue';window.localStorage['myKey'] = 'myValue'; localStorage: 除非删除否则一直可用,相当于增强版的cookie (每个域拥有5M的存储空间) localStorage 实例 http://goo.gl/WVEFo
  • 33. 离线Web应用 <!DOCTYPE HTML> <html manifest="cache.manifest"> <body> </body> </html>
  • 34. 离线Web应用 cache.manifest 文件 CACHE MANIFEST offline.html style.css script.js photo.jpg 注意: manifest 文件的 MIME类型必须为 text/cache-mainfest Apache 服务器配置 .htaccessAddType text/cache-mainfest .manifest
  • 35. 更多 HTML5 Geolocation API Communication API WebSockets API Web Workers API Web SQL Database SVG …
  • 36. HTML5 资源 HTML5 手册 http://www.w3school.com.cn/html5/index.asp Dive into HTML5 http://diveintohtml5.org/ HTML5 Gallery http://html5gallery.com/ GReader收藏 http://go.rpsh.net/gr-html5
  • 37. Thanks ! rpsh.net myrpsh@gmail.com
  • 38. Thanks ! rpsh.net twitter.com/rpsh