SlideShare ist ein Scribd-Unternehmen logo
1 von 118
Downloaden Sie, um offline zu lesen
Practical
 HTML5
        Matt Casto
  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
  Please thank our sponsors!
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

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
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
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 

Kürzlich hochgeladen (20)

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
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
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 

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 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
  • 117. Practical Please thank our sponsors!

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. Chrome requires &amp;#x201C;webkit&amp;#x201D; prefix.\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. Please thank our sponsors. Without sponsors such as these, a conference like this would cost an order of magnitude more ... if it were even possible.\n
  263. Thanks for listening to me rant.\n