50
TML5 and related technologie

Be HTML5-ready today

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Be HTML5-ready today

HTML5 and related technologies

Page 2: Be HTML5-ready today

Oleksandr Khomenko

twitter.com/[email protected]

I am from Ukraineand work in Petrosoft

I’m from here

Page 3: Be HTML5-ready today

HTML5 and friends

/by @rem (Remy Sharp)

Page 4: Be HTML5-ready today

Past. How did we get here?

Page 5: Be HTML5-ready today

Be HTML5-ready today!

Page 6: Be HTML5-ready today
Page 7: Be HTML5-ready today
Page 8: Be HTML5-ready today
Page 9: Be HTML5-ready today
Page 10: Be HTML5-ready today
Page 11: Be HTML5-ready today
Page 12: Be HTML5-ready today
Page 13: Be HTML5-ready today

Tons of candies!

Page 14: Be HTML5-ready today

HTML5 in 5 seconds

Page 15: Be HTML5-ready today

<!DOCTYPE html>

Page 16: Be HTML5-ready today

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"xml:lang="en" lang="en"><head><meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>

Page 17: Be HTML5-ready today

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"xml:lang="en" lang="en"><head><meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>

Page 18: Be HTML5-ready today

<!DOCTYPE html><html><head><meta charset=“utf-8”/>

Page 19: Be HTML5-ready today

New semantic elements:• section• nav• article• aside• hgroup• header• footer• time• mark

Page 20: Be HTML5-ready today
Page 21: Be HTML5-ready today

<!--[if lt IE 9]><script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->

document.createElement(“header”);document.createElement(“nav”);document.createElement(“aside”);…

OR

Page 22: Be HTML5-ready today

article, aside, figure, footer, header, hgroup, nav, section { display: block;}

CSS

Page 23: Be HTML5-ready today

data-* attributes

Page 24: Be HTML5-ready today

What is that?

<nav> <header> <h1>What do you plan to do on Friday’s evening?</h1> </header> <ul> <li><a href=“/menu/aval” data-title=“Raiffeisen Bank Aval”>Get money</a></li> <li><a href=“/menu/beerloga” data-title=“Drink till dawn”>Drink Beeeer!</a></li></ul></nav>

<script>$(“nav a”).click(function(){ var cost = $(this).attr(“data-fullinfo”); alert(“You are going to ” + $(this).attr(“data-title”));});</script>

Page 25: Be HTML5-ready today

Web Forms 2.0

• Placeholders:<form> <input name="q" placeholder="Search Bookmarks and History"> <input type="submit" value="Search"></form>

Page 26: Be HTML5-ready today

Autofocus:<form> <input name="q" autofocus> <input type="submit" value="Search"></form>

Page 27: Be HTML5-ready today

Input types:• email• url• phone• number• range

Date pickers• date• datetime• month• Week

• time

• search

Page 28: Be HTML5-ready today

• color

Page 29: Be HTML5-ready today

Validation:

<input id="q" required><form novalidate>

Page 30: Be HTML5-ready today

Video and audio

Page 31: Be HTML5-ready today

<object width="425" height="344"> <param name="movie" value="http://www.youtube.com/9sEI1AUFJKw" /> <param name="allowFullScreen" value="true" /> <param name="allowscriptaccess" value="always" /> <embed src="http://www.youtube.com/ 9sEI1AUFJKw" type="application/x-shockwave-flash width="425" height="344"> </embed> </object>

Earlier and now:

<video src=web.ogv></video>

HTML5 way:

<video src=format.ogv> Download the <a href=format.ogv>How to format c:</a> </video>

HTML5 way (+legacy browsers):

Page 32: Be HTML5-ready today

Attributes:• autoplay• controls• preload (auto, none, meta)• poster• loop

Page 33: Be HTML5-ready today

Codecs

Page 34: Be HTML5-ready today

<video controls> <source src=format.ogv type=’video/ogg; codecs="theora, vorbis"'> <source src=formt.mp4 type=’video/mp4; codecs="avc1.42E01E, mp4a.40"> <p>Your browser doesn’t support video. Please download the video in <a href=format.ogv>Ogg</a></p> </video>

Common way:

Page 35: Be HTML5-ready today

<video controls> <source src=format.ogv type=’video/ogg; codecs="theora, vorbis"'> <source src=formt.mp4 type=’video/mp4; codecs="avc1.42E01E, mp4a.40"> <embed src="http://www.youtube.com/v/cmtcc94Tv3A" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"> </video>

Common way (+legacy):

Page 36: Be HTML5-ready today

Steroids:<video> <source src=“format-low.ogv” media="(min-device-width: 800px)“></video>

Page 37: Be HTML5-ready today

Support:

Page 38: Be HTML5-ready today

Geolocation API

Page 39: Be HTML5-ready today

var gl = navigator.geolocation;gl.getCurrentPosition(displayPosition, displayError); function displayPosition(position) { alert(“Latitude: “ + position.coords.latitude + “, Longitude: “ + position.coords.longitude);} function displayError(positionError) { alert("error");}

gl.watchPosition(successCallback, errorCallback, options);

Get current location

Page 40: Be HTML5-ready today

var gl = navigator.geolocation;gl.getCurrentPosition(displayPosition, displayError); function displayPosition(position) { alert(“Latitude: “ + position.coords.latitude + “, Longitude: “ + position.coords.longitude);} function displayError(positionError) { alert("error");}

gl.watchPosition(successCallback, errorCallback, options);

Get current location

Page 41: Be HTML5-ready today

var gl = null; function displayPosition(position) { alert(“Latitude: “ + position.coords.latitude + “, Longitude: “ + position.coords.longitude);} function displayError(positionError) { alert("error");} try { if (typeof(navigator.geolocation) == 'undefined'){ gl = google.gears.factory.create('beta.geolocation'); } else { gl = navigator.geolocation; }} catch(e) {} if (gl) { gl.getCurrentPosition(displayPosition, displayError);} else { alert("Geolocation services are not supported by your web browser.");}

Fallback:

Page 42: Be HTML5-ready today

History API

Page 43: Be HTML5-ready today

Offline Applications (Cache)

Page 44: Be HTML5-ready today

Web Storage, Web SQL Databases

Page 45: Be HTML5-ready today

Drag n Drop

Page 46: Be HTML5-ready today

Web Sockets

Page 47: Be HTML5-ready today

In Chrome Frame we trust!

Page 48: Be HTML5-ready today

html5doctor.com

html5rocks.com

diveintohtml5.org

brucelawson.co.uk

remysharp.com

Resources

Page 49: Be HTML5-ready today
Page 50: Be HTML5-ready today

twitter.com/[email protected]