Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HTML5 與 CSS3 跨瀏覽器實務分享 – 各家瀏覽器相容性探討

HTML5 與 CSS3 跨瀏覽器實務分享 – 各家瀏覽器相容性探討

Delivered HTML5/CSS topic in Techdays Taiwan 2010

Eric Shangkuan

September 30, 2010
Tweet

More Decks by Eric Shangkuan

Other Decks in Programming

Transcript

  1. 2004年左右,由 Mozilla 基金會, Apple, Opera 等公司團體著手制定並向W3C建議新一代的 網頁技術標準(HTML5, Web Apps API)

    W3C 還愛著 XHTML,於是暫不接受 WHATWG (Web Hypertext Application Technology Working Group) 誕生,持續制定及實作新標準 W3C 於 2007 年開始成立 HTML5 Working Group
  2. Web Forms 2.0 新的表單元件 如:<input type="email" required> Web Application API

    增加輔助開發 Web Application 的 JavaScript 物件 如:var socket = new WebSocket(….);
  3. 以 BASE64 編碼方式表示圖片檔案 減少瀏覽器對伺服器的 requests 除了用在 <img> 標籤之外,也可以用在 CSS 裡

    <!-- Inline data uri (省略內容) --> <img src="data:image/png;base64,iVBORw0KGg oAAAANSUhEUgAAACAAAAAgCAYAAA Bzenr0AAAABGdBTUEAALGPC/xhBQA……" alt="" >
  4. 使 用 HTML5 新 增 的 <canvas> 標籤,搭配 使用 JavaScript

    來繪 圖(或是影像處理) 可以製作圖片、影像 處理、或者是遊戲!
  5. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"> <defs> <radialGradient id="grad1"> <stop

    offset="0%" stop-color="white"/> <stop offset="100%" stop-color="black"/> </radialGradient> </defs> <rect x="10" y="10" width="80" height="80" fill="url(#grad1)" stroke="blue"/> </svg>
  6. 在 HTML5 之前,瀏覽器可以使用 <img> 標籤 來顯示影像(瀏覽器都有影像解碼器) 在 HTML5 之後可以使用 <video>,

    <audio> 標 籤來播放影片或是音效檔案 可以針對標籤操作(自訂播放介面) 用 JavaScript 控制播放 用 CSS 裝飾標籤
  7. 瀏覽器的支援狀況 Safari (包括 iPhone/iPad), Chrome, IE9 支援 H.264 編碼格式 Mozilla

    Firefox, Opera 支援 Theora 編碼格式 Google 買下並開放 VP8 解碼器之後… Chrome, Firefox, Opera 皆已支援 VP8 解碼器 IE9 宣稱用戶電腦若有安裝解碼器即支援 Safari 表示:
  8. #bgTrans { width: 3em; height: 3em; background-color: red; transition: background-color

    1s linear; -o-transition: background-color 1s linear; -webkit-transition: background-color 1s linear; -moz-transition: background-color 1s linear; } #bgTrans.trans { background-color: blue; }
  9. /* transform 結合 transition */ #box { .... -webkit-transition: -webkit-transform

    1s ease; -moz-transition: -moz-transform 1s ease; -o-transition: -o-transform 1s ease; } #box.rotated { -webkit-transform: rotate(30deg); -moz-transform: rotate(30deg); -o-transform: rotate(30deg); }
  10. .anim { -webkit-animation-name: 'anim1'; -webkit-animation-duration: 6s; -webkit-animation-iteration-count: infinite; } @-webkit-keyframes

    anim1 { from { -webkit-transform: translateY(100px); -webkit-animation-timing-function: ease-out; } 50% { -webkit-transform: translateY(100px); -webkit-animation-timing-function: ease-out; } to { -webkit-transform: translateY(100px); } }
  11. var obj = { name: 'eric', values: [1, 2, 3,

    4, 5] }; // 轉成字串存入 localStorage['foo'] = JSON.stringify(obj); …… // 讀出來後再以 JSON.parse 還原回原本的 object type var theObj = JSON.parse(localStorage['foo']);
  12. 與網頁伺服器建立 Socket 連線 即時取得 Server 回 應,不必 polling var ws

    = new WebSocket('ws://localhost:8080/handle'); // 當 server 回傳資料時就會觸發 onmessage event ws.onmessage = function(evt) { };
  13. 多緒執行 JavaScript 程式碼,藉以利用多核心 裝置的運算能力 以訊息傳遞(postMessage)的方式溝通 // 啟用 Worker 執行另一支 JavaScript

    var wk = new Worker('heavy_works.js'); Wk.onmessage = function(evt) { // evt.data }; // heavy_work.js while (counter < 1000000) { …… } postMessage(msgObj);
  14. var onDrop = function(event) { // get the file objects

    var files = event.dataTransfer.files; // process the file one-by-one for (var i = 0; i < files.length; ++i) { // To read files: var fileReader = new FileReader(); fileReader.onload = function(event) { var content = event.target.result ... }; fileReader.readAsBinary(files[i]); } };
  15. 目前流行的 JavaScript (1.5) 是採用 ECMA-262 3/e 的規格 ECMAScript 5 ===

    ECMA-262 5/e 語法上進行強化 Native JSON New Array New Object …
  16. 學會 HTML5 之後,你不只是可以寫 Web,還 能寫 App! 學會 HTML/CSS/JavaScript 吃遍天下 減輕設計網站版面的負擔

    (CSS3) 優化網頁效能 最重要的,寫出好的 web/app 造成瀏覽器全 面升級的局面!
  17. 相關課程與內容 微軟商業智慧完整藍圖及最佳案例分享 ( BIN201 ) 9/28/2010 13:30 – 14:40 Room

    101CD http://blogs.msdn.com/camerons (相關連結1) http://blogs.msdn.com/stevecook (相關連結2) http://www.peterprovost.org/blog/ (相關連結3) 9/28/2010 13:30 – 14:40 Room 101CD
  18. http://technet.microsoft.com/zh- tw/default.aspx Resources for IT Professionals http://msdn.microsoft.com/zh- tw/default.aspx Resources for

    Developers www.microsoft.com/learning (產品相關連結1) Microsoft Certification and Training Resources (連結名稱1) 其他資源 http://support.microsoft.com/default.aspx?ln=ZH-TW (產品相關連結2) Microsoft 技術支援與服務 (連結名稱2) http://www.microsoft.com/taiwan/security/default.mspx (產品相關連結3) Microsoft 資訊安全首頁 (連結名稱3)
  19. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows

    Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.