SlideShare ist ein Scribd-Unternehmen logo
1 von 117
Practical
 HTML5
  Matt Casto - ICC
  http://google.com/profiles/mattcasto
Practical
Practical

   Important Factors
Practical
Important Factors
Practical
Important Factors
1. Client Platforms
Practical
Important Factors
1. Client Platforms
Practical
Important Factors
1. Client Platforms
Practical
Important Factors
1. Client Platforms
2. Web Browsers
Practical
Important Factors
1. Client Platforms
2. Web Browsers
Practical
Important Factors
1. Client Platforms
2. Web Browsers
Practical
Important Factors
1. Client Platforms
2. Web Browsers
3. Features Needed
Practical
Important Factors
1. Client Platforms
2. Web Browsers       Offline / Storage
3. Features Needed
Practical
Important Factors
1. Client Platforms
2. Web Browsers       Communication
3. Features Needed
Practical
Important Factors
1. Client Platforms
2. Web Browsers       Hardware Access
3. Features Needed
Practical
Important Factors
1. Client Platforms
2. Web Browsers       Semantics
3. Features Needed
Practical
Important Factors
1. Client Platforms
2. Web Browsers       Multimedia
3. Features Needed
Practical
Important Factors
1. Client Platforms
2. Web Browsers       CSS 3
3. Features Needed
Practical
Important Factors
1. Client Platforms
2. Web Browsers       3D Effects
3. Features Needed
Practical
Important Factors
1. Client Platforms
2. Web Browsers       Performance
3. Features Needed
Practical
Important Factors
1. Client Platforms
2. Web Browsers
3. Features Needed
Practical
Important Factors
1. Client Platforms
2. Web Browsers
3. Features Needed
4. Coolness Factor
Practical
Important Factors
1. Client Platforms
2. Web Browsers
3. Features Needed
4. Coolness Factor
Practical
Important Factors
1. Client Platforms
2. Web Browsers
3. Features Needed
4. Coolness Factor
Practical
Important Factors
1. Client Platforms
2. Web Browsers
3. Features Needed
4. Coolness Factor
Practical
Important Factors
1. Client Platforms
2. Web Browsers
3. Features Needed
4. Coolness Factor
Practical
Practical

   What is HTML5?
Practical
What is HTML5?
Practical
What is HTML5?


    HTML5 ≈      +   +
Practical
What is HTML5?


    HTML5 ≈   HTML   +   +
Practical
What is HTML5?


    HTML5 ≈   HTML   +   CSS   +
Practical
What is HTML5?


    HTML5 ≈   HTML   +   CSS   +   JS
Practical
What is HTML5?
Practical
What is HTML5?
    Offline / Storage   Multimedia

    Communication      CSS 3

    Hardware Access    3D Effects

    Semantics          Performance
Practical
What is HTML5?
    Offline / Storage   Multimedia

    Communication      CSS 3

    Hardware Access    3D Effects

    Semantics          Performance
Practical
  Offline / Storage
Practical
         Offline / Storage - Local Storage

// use localStorage for persistent storage
// use sessionStorage for per tab storage
window.localStorage.setItem('value', area.value);
window.sessionStorage.setItem('timestamp', (new Date()).getTime());
var val = window.localStorage.getItem('value');
window.localStorage.removeItem('value');
window.localStorage.clear();
Practical
              Offline / Storage - Local Storage




Source: http://caniuse.com
Practical
          Offline / Storage - Web SQL Database

var db = openDatabase('exampleDB', '1.0', 'example database', 5 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
  tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "bar")');
  tx.executeSql('SELECT * FROM foo', [], function (tx, results) {
    var len = results.rows.length, i;
    for (i = 0; i < len; i++) {
      alert(results.rows.item(i).text);
    }
  });
});
Practical
              Offline / Storage - Web SQL Database




Source: http://caniuse.com
Practical
        Offline / Storage - IndexedDB

var trans = db.transaction(["foo"], IDBTransaction.READ_WRITE, 0);
var store = trans.objectStore("foo");
var request = store.put( {"bar": foobar} );

request.onsuccess = function(e) {
   alert("Success!" + "rnrn" + e.value);
};
request.onerror = function(e) {
   alert("Error! " + "rnrn" + e.value);
};
Practical
              Offline / Storage - IndexedDB




Source: http://caniuse.com
Practical
           Offline / Storage - onLine API
document.body.addEventListener("online", function() { checkOnLineState(); }, false);
document.body.addEventListener("offline", function() { checkOnLineState(); }, false);
checkOnLineState();

function checkOnLineState() {
    if (typeof (navigator.onLine) == 'undefined') {
        alert("navigator.onLine isn't defined.");
        return;
    }
    if (navigator.onLine) {
        alert("You are online.");
    } else {
        alert("You are online.");
    }
}
Practical
        Offline / Storage - AppCache
CACHE MANIFEST
# v0.0.8 - not required, but lets you easily invalidate cache
index.html
site.css
jquery-1.4.1.js
emoticon_smile.png
emoticon_unhappy.png

NETWORK:
noncached.html

FALLBACK:
/ offline.html
Practical
      Offline / Storage - AppCache

<!DOCTYPE HTML>
<html manifest="cache.manifest">
    <head><title>Hello AppCache</title></head>
    <body>
        <h1>Hello AppCache!</h1>
    </body>
</html>
Practical
              Offline / Storage - AppCache & onLine




Source: http://caniuse.com
Practical
Practical
  Offline / Storage   Multimedia

  Communication      CSS 3

  Hardware Access    3D Effects

  Semantics          Performance
Practical
  Communication
Practical
         Communication - WebSocket API

var ws = new WebSocket("ws://websocket.example.com");
ws.onopen = function(e) { alert("WebSocket connection open"); };
ws.onmessage = function(e) { alert("WebSocket message received: "
    + e.data); };
ws.onclose = function(e) { alert("WebSocket connection closed"); };
ws.postMessage("Hello WebSocket");
ws.disconnect();
Practical
              Communication - WebSocket API




Source: http://caniuse.com
Practical
Practical
  Offline / Storage   Multimedia

  Communication      CSS 3

  Hardware Access    3D Effects

  Semantics          Performance
Practical
  Hardware Access
Practical
        Hardware Access - Native Drag & Drop
document.addEventListener('dragstart', function(event) {
  event.dataTransfer.setData('text', 'Customized text');
  event.dataTransfer.effectAllowed = 'copy';
}, false);
Practical
             Hardware Access - Native Drag & Drop




Source: http://caniuse.com
Practical
        Hardware Access - Geolocation
if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(function(position) {
    var latLng = new google.maps.LatLng(
        position.coords.latitude, position.coords.longitude);
    var marker = new google.maps.Marker(
      {
        position: latLng,
        map: map
      });
    map.setCenter(latLng);
  }, errorHandler);
}
Practical
             Hardware Access - Geolocation




Source: http://caniuse.com
Practical
        Hardware Access - Device Orientation
window.addEventListener('deviceorientation', function(event) {
  var a = event.alpha;
  var b = event.beta;
  var g = event.gamma;
}, false);
Practical
             Hardware Access - Device Orientation




Source: http://caniuse.com
Practical
Practical
  Offline / Storage   Multimedia

  Communication      CSS 3

  Hardware Access    3D Effects

  Semantics          Performance
Practical
  Semantics
Practical
            Semantics

<body>
                                   <section>               <aside>Top links...</aside>
  <header>
                                    <article>              <figure>
    <hgroup>
                                      <header>               <img src="..."/>
      <h1>Page title</h1>
                                        <h1>Title</h1>       <figcaption>Chart 1.1</figcaption>
      <h2>Page subtitle</h2>
                                      </header>            </figure>
    </hgroup>
                                      <section>            <footer>
  </header>
                                        Content...           Copyright ©
  <nav>
                                      </section>             <time datetime="2010-11-08">
   <ul>Navigation...</ul>
                                    </article>                 2010
  </nav>
                                   </section>                </time>.
                                                           </footer>
                                                         </body>
Practical
             Semantics




Source: http://caniuse.com
Practical
     Semantics - Datalist

<input list="cars"/>
<datalist id="cars">
  <option value="BMW"/>
  <option value="Ford"/>
  <option value="Volvo"/>
</datalist>
Practical
             Semantics - Datalist




Source: http://caniuse.com
Practical
     Semantics - Details / Summary

<details>
  <summary>Parent</summary>
  Child
</details>
Practical
             Semantics - Details / Summary




Source: http://caniuse.com
Practical
        Semantics - Progress & Meter

Your score is:
<meter min="0" max="100" low="40" high="90"
 optimum="100" value="91">A+</meter>


Download is:
<progress>working...</progress>


Goal is:
<progress value="75" max="100">3/4 complete</progress>
Practical
             Semantics - Progress & Meter




Source: http://caniuse.com
Practical
           Semantics - new form elements
<input type="text" required />

<input type="email" value="some@email.com" />

<input type="date" min="2010-08-14" max="2011-08-14"
       value="2010-08-14"/>

<input type="range" min="0" max="50" value="10" />

<input type="search" results="10" placeholder="Search..." />

<input type="tel"  placeholder="(555) 555-5555"
         pattern="^(?d{3})?[-s]d{3}[-s]d{4}.*?$" />

<input type="color" placeholder="e.g. #bbbbbb" />

<input type="number" step="1" min="-5" max="10" value="0" />
Practical
             Semantics - new form elements




Source: http://caniuse.com
Practical
Practical
  Offline / Storage   Multimedia

  Communication      CSS 3

  Hardware Access    3D Effects

  Semantics          Performance
Practical
 Multimedia
Practical
 Multimedia - Audio
Practical
             Multimedia - Audio




Source: http://caniuse.com
Practical
    Multimedia - Audio

 Browser       Ogg       mp3   wav
Firefox 3.5+    ✓              ✓
  Safari 5+              ✓     ✓
Chrome 6+       ✓        ✓
Opera 10.5+     ✓              ✓
     IE 9                ✓     ✓
Practical
 Multimedia - Video
Practical
             Multimedia - Video




Source: http://caniuse.com
Practical
     Multimedia - Video
 Browser        Ogg       H.264   WebM
 Firefox 3.5+     ✓
  Firefox 4+      ✓                ✓
   Safari 3+               ✓
 Chrome 6+        ✓                ✓
Opera 10.5+       ✓                ✓
      IE 9                 ✓       ✓
iPhone Safari              ✓
   Android                 ✓       ✓
Practical
           Multimedia - Canvas

<canvas id="canvas" width="838" height="220"></canvas>
<script>
  var canvasContext = document.getElementById("canvas").getContext("2d");
  canvasContext.fillRect(250, 25, 150, 100);

  canvasContext.beginPath();
  canvasContext.arc(450, 110, 100, Math.PI * 1/2, Math.PI * 3/2);
  canvasContext.lineWidth = 15;
  canvasContext.lineCap = 'round';
  canvasContext.strokeStyle = 'rgba(255, 127, 0, 0.5)';
  canvasContext.stroke();
</script>
Practical
             Multimedia - Canvas




Source: http://caniuse.com
Practical
       Multimedia - Inline SVG
<html>
  <svg>
    <circle id="myCircle" class="important"
            cx="50%" cy="50%" r="100"
            fill="url(#myGradient)"
            onmousedown="alert('hello');"/>
  </svg>
</html>
Practical
             Multimedia - Inline SVG




Source: http://caniuse.com
Practical
Practical
  Offline / Storage   Multimedia

  Communication      CSS 3

  Hardware Access    3D Effects

  Semantics          Performance
Practical
 CSS 3
Practical
    CSS 3 - Selectors

.row:nth-child(even) {
  background: #dde;
}
.row:nth-child(odd) {
  background: white;
}
Practical
    CSS 3 - Image-like display

div {
  display: inline-block;
}
Practical
    CSS 3 - specific attributes

input[type="text"] {
  background: #eee;
}
Practical
    CSS 3 - Negation

:not(.box) {
  color: #00c;
}            
:not(span) {
  display: block;
}
Practical
    CSS 3 - More specific targetting

h2:first-child { ... }

div.text > div { ... }
h2 + header { ... }
Practical
       CSS 3 - Webfonts
@font-face {                     <div id="fontface-sample"
  font-family: 'LeagueGothic';        class="example">
  src: url(LeagueGothic.otf);      <span>LeagueGothic font with
}                                   no image replacement</span>
                                 </div>
@font-face {
  font-family: 'Droid Sans';
  src: url(Droid_Sans.ttf);
}

header {
  font-family: 'LeagueGothic';
}
Practical
    CSS 3 - Text overflow

div {
  text-overflow: ellipsis;
}
Practical
      CSS 3 - Rounded Corners
face: border-radius: 15px;
left eye: border-radius: 20px;
right eye: border-radius: 35px;
base white: border-radius: 5px;
mouth: border-radius: 23px;
nose: border-radius: 0px;
left black eye: border-radius: 35px;
right black eye: border-radius: 2px;
Practical
    CSS 3

text-shadow: 5px 5px 4px #0ff;
Practical
           CSS 3 - all features




Source: http://caniuse.com
Practical
Practical
  Offline / Storage   Multimedia

  Communication      CSS 3

  Hardware Access    3D Effects

  Semantics          Performance
Practical
 3D Effects
Practical
       3D Effects - Canvas 3D
<canvas id="canvas" width="838" height="220"></canvas>

<script>
  var canvas = document.getElementById("canvas")
  var gl = canvas.getContext("experimental-webgl");
  gl.viewport(0, 0, canvas.width, canvas.height);
  //...
</script>
Practical
Practical
  Offline / Storage   Multimedia

  Communication      CSS 3

  Hardware Access    3D Effects

  Semantics          Performance
Practical
 Performance
Practical
       Performance - Web Workers

var worker = new Worker("worker.js");


                                               }
worker.onmessage = function(e){ alert(e.data) };
worker.postMessage("Hello Worker");
                                                   page script




                                               }
onmessage = function(e) {
    if (e.data === "Hello Worker") {
        postMessage("Hello World");                worker.js
    }
};
Practical
            Performance - Web Workers




Source: http://caniuse.com
Practical
Practical
Detection, Polyfills, and Shims
http://modernizr.com/

http://yepnopejs.com/

https://github.com/Modernizr/Modernizr/wiki/
HTML5-Cross-browser-Polyfills
Practical
Practical
Just remember ...
Practical
Just remember ...
Practical
Just remember ...
support your
customer.
Practical
Just remember ...
Practical
Just remember ...
don’t be a hipster
Practical
Resources:
http://www.w3.org/html5
http://www.html5rocks.com/
http://slides.html5rocks.com
http://diveintohtml5.org
http://caniuse.com

Weitere ähnliche Inhalte

Kürzlich hochgeladen

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

Empfohlen

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Empfohlen (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Practical HTML5

  • 1. Practical HTML5 Matt Casto - ICC http://google.com/profiles/mattcasto
  • 3. Practical Important Factors
  • 8. Practical Important Factors 1. Client Platforms 2. Web Browsers
  • 9. Practical Important Factors 1. Client Platforms 2. Web Browsers
  • 10. Practical Important Factors 1. Client Platforms 2. Web Browsers
  • 11. Practical Important Factors 1. Client Platforms 2. Web Browsers 3. Features Needed
  • 12. Practical Important Factors 1. Client Platforms 2. Web Browsers Offline / Storage 3. Features Needed
  • 13. Practical Important Factors 1. Client Platforms 2. Web Browsers Communication 3. Features Needed
  • 14. Practical Important Factors 1. Client Platforms 2. Web Browsers Hardware Access 3. Features Needed
  • 15. Practical Important Factors 1. Client Platforms 2. Web Browsers Semantics 3. Features Needed
  • 16. Practical Important Factors 1. Client Platforms 2. Web Browsers Multimedia 3. Features Needed
  • 17. Practical Important Factors 1. Client Platforms 2. Web Browsers CSS 3 3. Features Needed
  • 18. Practical Important Factors 1. Client Platforms 2. Web Browsers 3D Effects 3. Features Needed
  • 19. Practical Important Factors 1. Client Platforms 2. Web Browsers Performance 3. Features Needed
  • 20. Practical Important Factors 1. Client Platforms 2. Web Browsers 3. Features Needed
  • 21. Practical Important Factors 1. Client Platforms 2. Web Browsers 3. Features Needed 4. Coolness Factor
  • 22. Practical Important Factors 1. Client Platforms 2. Web Browsers 3. Features Needed 4. Coolness Factor
  • 23. Practical Important Factors 1. Client Platforms 2. Web Browsers 3. Features Needed 4. Coolness Factor
  • 24. Practical Important Factors 1. Client Platforms 2. Web Browsers 3. Features Needed 4. Coolness Factor
  • 25. Practical Important Factors 1. Client Platforms 2. Web Browsers 3. Features Needed 4. Coolness Factor
  • 27. Practical What is HTML5?
  • 29. Practical What is HTML5? HTML5 ≈ + +
  • 30. Practical What is HTML5? HTML5 ≈ HTML + +
  • 31. Practical What is HTML5? HTML5 ≈ HTML + CSS +
  • 32. Practical What is HTML5? HTML5 ≈ HTML + CSS + JS
  • 34. Practical What is HTML5? Offline / Storage Multimedia Communication CSS 3 Hardware Access 3D Effects Semantics Performance
  • 35. Practical What is HTML5? Offline / Storage Multimedia Communication CSS 3 Hardware Access 3D Effects Semantics Performance
  • 36. Practical Offline / Storage
  • 37. Practical Offline / Storage - Local Storage // use localStorage for persistent storage // use sessionStorage for per tab storage window.localStorage.setItem('value', area.value); window.sessionStorage.setItem('timestamp', (new Date()).getTime()); var val = window.localStorage.getItem('value'); window.localStorage.removeItem('value'); window.localStorage.clear();
  • 38. Practical Offline / Storage - Local Storage Source: http://caniuse.com
  • 39. Practical Offline / Storage - Web SQL Database var db = openDatabase('exampleDB', '1.0', 'example database', 5 * 1024 * 1024); db.transaction(function (tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)'); tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "bar")'); tx.executeSql('SELECT * FROM foo', [], function (tx, results) { var len = results.rows.length, i; for (i = 0; i < len; i++) { alert(results.rows.item(i).text); } }); });
  • 40. Practical Offline / Storage - Web SQL Database Source: http://caniuse.com
  • 41. Practical Offline / Storage - IndexedDB var trans = db.transaction(["foo"], IDBTransaction.READ_WRITE, 0); var store = trans.objectStore("foo"); var request = store.put( {"bar": foobar} ); request.onsuccess = function(e) { alert("Success!" + "rnrn" + e.value); }; request.onerror = function(e) { alert("Error! " + "rnrn" + e.value); };
  • 42. Practical Offline / Storage - IndexedDB Source: http://caniuse.com
  • 43. Practical Offline / Storage - onLine API document.body.addEventListener("online", function() { checkOnLineState(); }, false); document.body.addEventListener("offline", function() { checkOnLineState(); }, false); checkOnLineState(); function checkOnLineState() { if (typeof (navigator.onLine) == 'undefined') { alert("navigator.onLine isn't defined."); return; } if (navigator.onLine) { alert("You are online."); } else { alert("You are online."); } }
  • 44. Practical Offline / Storage - AppCache CACHE MANIFEST # v0.0.8 - not required, but lets you easily invalidate cache index.html site.css jquery-1.4.1.js emoticon_smile.png emoticon_unhappy.png NETWORK: noncached.html FALLBACK: / offline.html
  • 45. Practical Offline / Storage - AppCache <!DOCTYPE HTML> <html manifest="cache.manifest"> <head><title>Hello AppCache</title></head> <body> <h1>Hello AppCache!</h1> </body> </html>
  • 46. Practical Offline / Storage - AppCache & onLine Source: http://caniuse.com
  • 48. Practical Offline / Storage Multimedia Communication CSS 3 Hardware Access 3D Effects Semantics Performance
  • 50. Practical Communication - WebSocket API var ws = new WebSocket("ws://websocket.example.com"); ws.onopen = function(e) { alert("WebSocket connection open"); }; ws.onmessage = function(e) { alert("WebSocket message received: " + e.data); }; ws.onclose = function(e) { alert("WebSocket connection closed"); }; ws.postMessage("Hello WebSocket"); ws.disconnect();
  • 51. Practical Communication - WebSocket API Source: http://caniuse.com
  • 53. Practical Offline / Storage Multimedia Communication CSS 3 Hardware Access 3D Effects Semantics Performance
  • 55. Practical Hardware Access - Native Drag & Drop document.addEventListener('dragstart', function(event) {   event.dataTransfer.setData('text', 'Customized text');   event.dataTransfer.effectAllowed = 'copy'; }, false);
  • 56. Practical Hardware Access - Native Drag & Drop Source: http://caniuse.com
  • 57. Practical Hardware Access - Geolocation if (navigator.geolocation) {   navigator.geolocation.getCurrentPosition(function(position) {     var latLng = new google.maps.LatLng(         position.coords.latitude, position.coords.longitude);     var marker = new google.maps.Marker( { position: latLng, map: map });     map.setCenter(latLng);   }, errorHandler); }
  • 58. Practical Hardware Access - Geolocation Source: http://caniuse.com
  • 59. Practical Hardware Access - Device Orientation window.addEventListener('deviceorientation', function(event) {   var a = event.alpha;   var b = event.beta;   var g = event.gamma; }, false);
  • 60. Practical Hardware Access - Device Orientation Source: http://caniuse.com
  • 62. Practical Offline / Storage Multimedia Communication CSS 3 Hardware Access 3D Effects Semantics Performance
  • 64. Practical Semantics <body>   <section>   <aside>Top links...</aside>   <header>    <article>   <figure>     <hgroup>      <header>     <img src="..."/>       <h1>Page title</h1>        <h1>Title</h1>     <figcaption>Chart 1.1</figcaption>       <h2>Page subtitle</h2>      </header>   </figure>     </hgroup>      <section>   <footer>   </header>        Content...     Copyright ©   <nav>      </section>     <time datetime="2010-11-08">    <ul>Navigation...</ul>    </article> 2010   </nav> </section> </time>.   </footer> </body>
  • 65. Practical Semantics Source: http://caniuse.com
  • 66. Practical Semantics - Datalist <input list="cars"/> <datalist id="cars">   <option value="BMW"/>   <option value="Ford"/>   <option value="Volvo"/> </datalist>
  • 67. Practical Semantics - Datalist Source: http://caniuse.com
  • 68. Practical Semantics - Details / Summary <details>   <summary>Parent</summary>   Child </details>
  • 69. Practical Semantics - Details / Summary Source: http://caniuse.com
  • 70. Practical Semantics - Progress & Meter Your score is: <meter min="0" max="100" low="40" high="90" optimum="100" value="91">A+</meter> Download is: <progress>working...</progress> Goal is: <progress value="75" max="100">3/4 complete</progress>
  • 71. Practical Semantics - Progress & Meter Source: http://caniuse.com
  • 72. Practical Semantics - new form elements <input type="text" required /> <input type="email" value="some@email.com" /> <input type="date" min="2010-08-14" max="2011-08-14" value="2010-08-14"/> <input type="range" min="0" max="50" value="10" /> <input type="search" results="10" placeholder="Search..." /> <input type="tel"  placeholder="(555) 555-5555"          pattern="^(?d{3})?[-s]d{3}[-s]d{4}.*?$" /> <input type="color" placeholder="e.g. #bbbbbb" /> <input type="number" step="1" min="-5" max="10" value="0" />
  • 73. Practical Semantics - new form elements Source: http://caniuse.com
  • 75. Practical Offline / Storage Multimedia Communication CSS 3 Hardware Access 3D Effects Semantics Performance
  • 78. Practical Multimedia - Audio Source: http://caniuse.com
  • 79. Practical Multimedia - Audio Browser Ogg mp3 wav Firefox 3.5+ ✓ ✓ Safari 5+ ✓ ✓ Chrome 6+ ✓ ✓ Opera 10.5+ ✓ ✓ IE 9 ✓ ✓
  • 81. Practical Multimedia - Video Source: http://caniuse.com
  • 82. Practical Multimedia - Video Browser Ogg H.264 WebM Firefox 3.5+ ✓ Firefox 4+ ✓ ✓ Safari 3+ ✓ Chrome 6+ ✓ ✓ Opera 10.5+ ✓ ✓ IE 9 ✓ ✓ iPhone Safari ✓ Android ✓ ✓
  • 83. Practical Multimedia - Canvas <canvas id="canvas" width="838" height="220"></canvas> <script> var canvasContext = document.getElementById("canvas").getContext("2d"); canvasContext.fillRect(250, 25, 150, 100); canvasContext.beginPath(); canvasContext.arc(450, 110, 100, Math.PI * 1/2, Math.PI * 3/2); canvasContext.lineWidth = 15; canvasContext.lineCap = 'round'; canvasContext.strokeStyle = 'rgba(255, 127, 0, 0.5)'; canvasContext.stroke(); </script>
  • 84. Practical Multimedia - Canvas Source: http://caniuse.com
  • 85. Practical Multimedia - Inline SVG <html>   <svg>     <circle id="myCircle" class="important" cx="50%" cy="50%" r="100"         fill="url(#myGradient)"         onmousedown="alert('hello');"/>   </svg> </html>
  • 86. Practical Multimedia - Inline SVG Source: http://caniuse.com
  • 88. Practical Offline / Storage Multimedia Communication CSS 3 Hardware Access 3D Effects Semantics Performance
  • 90. Practical CSS 3 - Selectors .row:nth-child(even) {   background: #dde; } .row:nth-child(odd) {   background: white; }
  • 91. Practical CSS 3 - Image-like display div {   display: inline-block; }
  • 92. Practical CSS 3 - specific attributes input[type="text"] {   background: #eee; }
  • 93. Practical CSS 3 - Negation :not(.box) {   color: #00c; }             :not(span) {   display: block; }
  • 94. Practical CSS 3 - More specific targetting h2:first-child { ... } div.text > div { ... } h2 + header { ... }
  • 95. Practical CSS 3 - Webfonts @font-face { <div id="fontface-sample"   font-family: 'LeagueGothic'; class="example">   src: url(LeagueGothic.otf); <span>LeagueGothic font with } no image replacement</span> </div> @font-face {   font-family: 'Droid Sans';   src: url(Droid_Sans.ttf); } header {   font-family: 'LeagueGothic'; }
  • 96. Practical CSS 3 - Text overflow div {   text-overflow: ellipsis; }
  • 97. Practical CSS 3 - Rounded Corners face: border-radius: 15px; left eye: border-radius: 20px; right eye: border-radius: 35px; base white: border-radius: 5px; mouth: border-radius: 23px; nose: border-radius: 0px; left black eye: border-radius: 35px; right black eye: border-radius: 2px;
  • 98. Practical CSS 3 text-shadow: 5px 5px 4px #0ff;
  • 99. Practical CSS 3 - all features Source: http://caniuse.com
  • 101. Practical Offline / Storage Multimedia Communication CSS 3 Hardware Access 3D Effects Semantics Performance
  • 103. Practical 3D Effects - Canvas 3D <canvas id="canvas" width="838" height="220"></canvas> <script>   var canvas = document.getElementById("canvas") var gl = canvas.getContext("experimental-webgl");   gl.viewport(0, 0, canvas.width, canvas.height);   //... </script>
  • 105. Practical Offline / Storage Multimedia Communication CSS 3 Hardware Access 3D Effects Semantics Performance
  • 107. Practical Performance - Web Workers var worker = new Worker("worker.js"); } worker.onmessage = function(e){ alert(e.data) }; worker.postMessage("Hello Worker"); page script } onmessage = function(e) { if (e.data === "Hello Worker") { postMessage("Hello World"); worker.js } };
  • 108. Practical Performance - Web Workers Source: http://caniuse.com
  • 110. Practical Detection, Polyfills, and Shims http://modernizr.com/ http://yepnopejs.com/ https://github.com/Modernizr/Modernizr/wiki/ HTML5-Cross-browser-Polyfills

Hinweis der Redaktion

  1. Practical HTML by Matt Casto\n
  2. In the interest of evaluating HTML5 from a completely practical standpoint, we first need to consider the most important factors.\n
  3. Which platforms do you need to support?\nDesktop Computers, Smart Phones, Tablets\n
  4. Which platforms do you need to support?\nDesktop Computers, Smart Phones, Tablets\n
  5. Which platforms do you need to support?\nDesktop Computers, Smart Phones, Tablets\n
  6. Which platforms do you need to support?\nDesktop Computers, Smart Phones, Tablets\n
  7. Which browsers do you need to support?\nInternet Explorer, Firefox, Safari, Chrome, iOS Safari, Android, and others\n
  8. Which browsers do you need to support?\nInternet Explorer, Firefox, Safari, Chrome, iOS Safari, Android, and others\n
  9. Which browsers do you need to support?\nInternet Explorer, Firefox, Safari, Chrome, iOS Safari, Android, and others\n
  10. Which browsers do you need to support?\nInternet Explorer, Firefox, Safari, Chrome, iOS Safari, Android, and others\n
  11. Which browsers do you need to support?\nInternet Explorer, Firefox, Safari, Chrome, iOS Safari, Android, and others\n
  12. Which browsers do you need to support?\nInternet Explorer, Firefox, Safari, Chrome, iOS Safari, Android, and others\n
  13. Which browsers do you need to support?\nInternet Explorer, Firefox, Safari, Chrome, iOS Safari, Android, and others\n
  14. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  15. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  16. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  17. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  18. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  19. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  20. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  21. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  22. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  23. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  24. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  25. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  26. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  27. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  28. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  29. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  30. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  31. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  32. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  33. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  34. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  35. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  36. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  37. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  38. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  39. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  40. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  41. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  42. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  43. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  44. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  45. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  46. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  47. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  48. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  49. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  50. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  51. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  52. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  53. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  54. What features do you need?\nOffline/Storage, Communication, Hardware Access, Semantics, Multimedia, CSS 3, 3D Effects, Performance\n
  55. Beware of the &amp;#x201C;coolness factor&amp;#x201D; influencing your decisions. Don&amp;#x2019;t be a hipster.\nNOT PRACTICAL!\n
  56. Beware of the &amp;#x201C;coolness factor&amp;#x201D; influencing your decisions. Don&amp;#x2019;t be a hipster.\nNOT PRACTICAL!\n
  57. Beware of the &amp;#x201C;coolness factor&amp;#x201D; influencing your decisions. Don&amp;#x2019;t be a hipster.\nNOT PRACTICAL!\n
  58. Beware of the &amp;#x201C;coolness factor&amp;#x201D; influencing your decisions. Don&amp;#x2019;t be a hipster.\nNOT PRACTICAL!\n
  59. Beware of the &amp;#x201C;coolness factor&amp;#x201D; influencing your decisions. Don&amp;#x2019;t be a hipster.\nNOT PRACTICAL!\n
  60. Beware of the &amp;#x201C;coolness factor&amp;#x201D; influencing your decisions. Don&amp;#x2019;t be a hipster.\nNOT PRACTICAL!\n
  61. Beware of the &amp;#x201C;coolness factor&amp;#x201D; influencing your decisions. Don&amp;#x2019;t be a hipster.\nNOT PRACTICAL!\n
  62. Beware of the &amp;#x201C;coolness factor&amp;#x201D; influencing your decisions. Don&amp;#x2019;t be a hipster.\nNOT PRACTICAL!\n
  63. What really is HTML5? Many things considered to be part of HTML5 aren&amp;#x2019;t in the actual specification. HTML5 has become a buzzword.\n
  64. HTML 5 is a combination of updates to HTML markup, CSS styling, and Javascript API.\n
  65. HTML 5 is a combination of updates to HTML markup, CSS styling, and Javascript API.\n
  66. HTML 5 is a combination of updates to HTML markup, CSS styling, and Javascript API.\n
  67. HTML 5 is a combination of updates to HTML markup, CSS styling, and Javascript API.\n
  68. HTML 5 is a combination of updates to HTML markup, CSS styling, and Javascript API.\n
  69. HTML 5 is a combination of updates to HTML markup, CSS styling, and Javascript API.\n
  70. HTML 5 is a combination of updates to HTML markup, CSS styling, and Javascript API.\n
  71. HTML 5 is a combination of updates to HTML markup, CSS styling, and Javascript API.\n
  72. HTML 5 is a combination of updates to HTML markup, CSS styling, and Javascript API.\n
  73. HTML 5 is a combination of many disparate features. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  74. HTML 5 is a combination of many disparate features. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  75. HTML 5 is a combination of many disparate features. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  76. HTML 5 is a combination of many disparate features. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  77. HTML 5 is a combination of many disparate features. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  78. HTML 5 is a combination of many disparate features. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  79. HTML 5 is a combination of many disparate features. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  80. HTML 5 is a combination of many disparate features. What is considered by most people to be HTML 5 is actually several specifications that are all grouped under that name.\n
  81. Online/Offline detection and data storage.\n
  82. Online/Offline detection and data storage.\n
  83. Online/Offline detection and data storage.\n
  84. Online/Offline detection and data storage.\n
  85. Online/Offline detection and data storage.\n
  86. Online/Offline detection and data storage.\n
  87. Online/Offline detection and data storage.\n
  88. Online/Offline detection and data storage.\n
  89. Online/Offline detection and data storage.\n
  90. - Very simple key-value pair storage\n- jquery-jstore - jQuery based library implemented over local storage\n- 5MB limit with no API to increase quote - at the users&amp;#x2019; mercy!\n- Used to be part of the HTML5 spec, but was removed\n
  91. \n
  92. - this is an implementation of SQLite in javascript\n- W3C deprecated specification on 11/18/2010 which means you shouldn&amp;#x2019;t use it :-(\n
  93. Firefox has stated it will never add support for Web SQL. Coupled with IE&amp;#x2019;s lack of interest, the W3C deprecated the specification.\n
  94. - Indexed Database API, aka IndexedDB, formerly known as WebSimpleDB\n- this is an object store, not a relational database, storing Javascript Objects\n- Asynchronous and Transactional only\n- You can create indexes against your stored objects\n
  95. - The best example I could find online did not work and was out of date.\n- Firefox requires &amp;#x201C;moz&amp;#x201D; prefix pre v16.\n- Chrome requires &amp;#x201C;webkit&amp;#x201D; prefix currently, but removed in v24.\n- IMO, this technology shows great promise, but is not ready for prime time.\n
  96. - Note that onLine won&amp;#x2019;t tell you if your site is down or not responding - only whether the browser has network connectivity.\n- IE and Firefox have &amp;#x201C;Work Offline&amp;#x201D; menu options, but WebKit browsers don&amp;#x2019;t.\n
  97. - CACHE MANIFEST section includes all resources loaded into cache\n- NETWORK section includes all resources not cached\n- FALLBACK section includes page to fall back to when offline and referencing a page that is not included in the cache\n
  98. - The cache manifest document is referenced in whatever page you want to automatically load all resources into the local application cache.\n- This is brittle - a problem with loading any resource will cause the entire process to fail, and the error notifications are very limited.\n
  99. - Each browser has a different default size for the cache&amp;#x2019;s quota, with no API for checking the quota size or increasing it defined in the specification!\n- Again, at the users&amp;#x2019; mercy for cache size.\n- For a funny, and informative, article about AppCache difficulties, search for &amp;#x201C;AppCache is a douchebag&amp;#x201D;\n
  100. Communication\n
  101. Communication\n
  102. Communication\n
  103. Communication\n
  104. Communication\n
  105. Communication\n
  106. Communication\n
  107. Communication\n
  108. Communication\n
  109. Communication\n
  110. Communication\n
  111. Communication\n
  112. Communication\n
  113. Communication\n
  114. Communication\n
  115. Communication\n
  116. WebSocket API provides bi-directional, full-duplex communication over a single TCP socket.\n
  117. Note no support on Android. Partial support in Safari versions refers to an implementation using an older version of the protocol.\n
  118. Hardware Access\n
  119. Hardware Access\n
  120. Hardware Access\n
  121. Hardware Access\n
  122. Hardware Access\n
  123. Hardware Access\n
  124. Hardware Access\n
  125. Hardware Access\n
  126. Hardware Access\n
  127. Hardware Access\n
  128. Hardware Access\n
  129. Hardware Access\n
  130. Hardware Access\n
  131. Hardware Access\n
  132. Hardware Access\n
  133. Hardware Access\n
  134. \n
  135. Lack of support in mobile browsers makes sense, really.\n
  136. Of course, the google stuff in this example isn&amp;#x2019;t cross browser ... just ignore that part ;-)\n
  137. IE 9 is reported to have issues reporting correct latitude &amp; longitude.\n
  138. \n
  139. \n
  140. Semantic markup elements, and other new markup elements.\n
  141. Semantic markup elements, and other new markup elements.\n
  142. Semantic markup elements, and other new markup elements.\n
  143. Semantic markup elements, and other new markup elements.\n
  144. Semantic markup elements, and other new markup elements.\n
  145. Semantic markup elements, and other new markup elements.\n
  146. Semantic markup elements, and other new markup elements.\n
  147. Semantic markup elements, and other new markup elements.\n
  148. Semantic markup elements, and other new markup elements.\n
  149. Semantic markup elements, and other new markup elements.\n
  150. Semantic markup elements, and other new markup elements.\n
  151. Semantic markup elements, and other new markup elements.\n
  152. Semantic markup elements, and other new markup elements.\n
  153. Semantic markup elements, and other new markup elements.\n
  154. Semantic markup elements, and other new markup elements.\n
  155. Semantic markup elements, and other new markup elements.\n
  156. Sorry for the small size - complete examples are difficult to fit onto a single slide. This shows most common new semantic elements. In the past, you would typically have a &lt;div id=&amp;#x201D;whatever&amp;#x201D;&gt; instead.\n
  157. \n
  158. The datalist is referenced as an auto-complete when user types into the input element.\n
  159. \n
  160. The summary value is shown with a glyph that can be clicked to expand and show the details, much like a tree-view control.\n
  161. \n
  162. The value inside the element is shown when the browser doesn&amp;#x2019;t support the element. The actual control displayed depends on the browser and operating system.\n
  163. Partial support in Firefox 6+ and IE10 refers to supporting the progress element, but not the meter element.\n
  164. The color input pops up a color selector based on the browser / OS.\nNote that number, email, and tel elements change the type of keyboard (SIP) in mobile browsers.\n
  165. Most browsers only have partial support because this shows the support of ALL of the new form elements. Sorry, I&amp;#x2019;m lazy, I didn&amp;#x2019;t want to copy a chart for each element.\n
  166. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  167. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  168. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  169. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  170. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  171. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  172. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  173. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  174. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  175. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  176. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  177. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  178. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  179. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  180. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  181. Video and audio are what most people think of when they hear the buzzword HTML5.\n
  182. You would typically put a flash or silverlight audio object inside the audio tag to gracefully fallback on browsers that don&amp;#x2019;t support it.\n
  183. \n
  184. Note that no single encoding works for all browsers -- you WILL end up referencing multiple encodings.\n
  185. You would typical put a flash video object inside the video tag for graceful fallback for devices that don&amp;#x2019;t support the video tag.\n
  186. \n
  187. Note that no single encoding works for all browsers.\n
  188. \n
  189. Note that Opera Mini&amp;#x2019;s partial support - it will display the canvas but is unable to play animations or complex operations.\n
  190. A simple circle with a gratuitous gradient fill and pops up an alert when you click on it.\n
  191. Note that Opera Mini&amp;#x2019;s partial support - it will display the canvas but is unable to play animations or complex operations.\n
  192. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  193. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  194. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  195. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  196. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  197. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  198. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  199. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  200. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  201. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  202. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  203. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  204. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  205. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  206. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  207. CSS 3 includes many new ways of styling and animating elements that make old methods obsolete (like Flash).\nBrowsers have lots of specific tricks, but I&amp;#x2019;m sticking to the non-prefixed features.\n\n
  208. Frankly, I just use jQuery for this\n
  209. I&amp;#x2019;ll be the first to admit that I&amp;#x2019;m no CSS guru. I&amp;#x2019;m going through these CSS features exactly as they appear in http://slides.html5rocks.com/#css-selectors\n
  210. Again, I&amp;#x2019;d use jQuery for this\n
  211. Again, I&amp;#x2019;d use jQuery for this\n
  212. Again, I&amp;#x2019;d use jQuery for this\n
  213. \n
  214. \n
  215. This is based on a great interactive demo at http://slides.html5rocks.com/#rounded-corners\n
  216. \n
  217. Rather than showing http://caniuse.com support statistics for each CSS3 feature, I used their combined browser support chart.\n
  218. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  219. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  220. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  221. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  222. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  223. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  224. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  225. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  226. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  227. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  228. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  229. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  230. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  231. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  232. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  233. 3D effects have been included in the specification for a while, but browsers are only recently beginning to support the specifications.\n
  234. I took a screenshot of the rendered result of this markup, but it doesn&amp;#x2019;t show the entire animation. For the real version, see http://slides.html5rocks.com/#canvas-3d which is, in turn, based on http://mobile.freecode.com/projects/sanogles\n
  235. Performance is about threading, commonly known as web workers.\n
  236. Performance is about threading, commonly known as web workers.\n
  237. Performance is about threading, commonly known as web workers.\n
  238. Performance is about threading, commonly known as web workers.\n
  239. Performance is about threading, commonly known as web workers.\n
  240. Performance is about threading, commonly known as web workers.\n
  241. Performance is about threading, commonly known as web workers.\n
  242. Performance is about threading, commonly known as web workers.\n
  243. Performance is about threading, commonly known as web workers.\n
  244. Performance is about threading, commonly known as web workers.\n
  245. Performance is about threading, commonly known as web workers.\n
  246. Performance is about threading, commonly known as web workers.\n
  247. Performance is about threading, commonly known as web workers.\n
  248. Performance is about threading, commonly known as web workers.\n
  249. Performance is about threading, commonly known as web workers.\n
  250. Performance is about threading, commonly known as web workers.\n
  251. Web Workers have no access to the DOM or the calling page; the only communication allowed is through messages.\n
  252. \n
  253. If you feel like you really must use these newfangled features, but can&amp;#x2019;t depend on client support, you can always use feature detection and create graceful fallbacks; or even duplicate features using polyfill or shim libraries.\n
  254. If you feel like you really must use these newfangled features, but can&amp;#x2019;t depend on client support, you can always use feature detection and create graceful fallbacks; or even duplicate features using polyfill or shim libraries.\n
  255. If you feel like you really must use these newfangled features, but can&amp;#x2019;t depend on client support, you can always use feature detection and create graceful fallbacks; or even duplicate features using polyfill or shim libraries.\n
  256. If you feel like you really must use these newfangled features, but can&amp;#x2019;t depend on client support, you can always use feature detection and create graceful fallbacks; or even duplicate features using polyfill or shim libraries.\n
  257. Just remember what&amp;#x2019;s important: delivering what your customer needs.\n
  258. Support your customer&amp;#x2019;s platforms and browsers.\n
  259. Support your customer&amp;#x2019;s platforms and browsers.\n
  260. Don&amp;#x2019;t be a hipster.\n
  261. Don&amp;#x2019;t be a hipster.\n
  262. Thanks for listening to me rant.\n