familiar html5 - 事例とサンプルコードから学ぶ 身近で普通に使わているhtml5

50
Familiar HTML5 HTML5 2013/02/10 HTML5 Conference Miyazaki 2013 @sada_h

Upload: sadaaki-hirai

Post on 18-Dec-2014

2.036 views

Category:

Technology


5 download

DESCRIPTION

Familiar HTML5 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5 HTML5 Conference Miyazaki 2013 2013/02/10 ひらい さだあき @sada_h

TRANSCRIPT

Page 1: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

Familiar HTML5HTML5

2013/02/10

HTML5 Conference Miyazaki 2013

@sada_h

Page 2: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

html5j.org / HTML5

/ /

Ruby / Rails / HTML5 / JavaScript / Java

Kakaku.com, Inc. Engineer 2012/08

sadah.github.com @sada_h techlog

[ ]

[cena( )]

Page 3: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Page 4: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Page 5: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

HTML5

Page 6: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

HTML5 W3CYearYear SpecSpec TopicTopic

1993 HTML 1.0 IEFT

1997 HTML 3.2 W3C

W3C

1997 HTML 4.0 W3C

1999 HTML 4.0.1 W3C

2000 XHTML 1.0 W3C

HTML 4.0.1 XML

Page 7: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

HTML5 W3CYearYear SpecSpec TopicTopic

2001 XHTML 1.1 W3C

2007 HTML5 W3C (WG )

2009 XHTML 2.0 XHTML2 WG

2011 HTML5 W3C

2012 HTML5 W3C (2012/12/17)

Page 9: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Page 10: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

HTML5

Page 11: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Page 12: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Page 13: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

HTML5

HTML5

Page 14: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Page 15: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

HTML5

Page 17: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

HTML5 Markuphtml5shiv createElement

<!--[if lt IE 9]>

<script src="dist/html5shiv.js"></script>

<![endif]-->

elements = "abbr article aside audio bdi canvas data datalist details figcaption figu

re footer header hgroup mark meter nav output progress section summary time vi

deo".split(" ");

for(var i=0; i<elements.length; i++){

document.createElement(elements[i]);

}

Sample: HTML5 fall back Sample

Page 18: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

JavaScriptWindow/History/Location HTML5

Thanks myakura!

Selectors API jQuery

5.2 The Window object — HTML5

5.5.2 The History interface

5.5.3 The Location interface

Selectors API Level 1

jquery-1.8.2.js

Page 19: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

WebStorageWebStorage Google twitter

IndexedDB

HTML5Rocks …

Twitter

Google

Web Storage

IndexedDB TODO HTML5 Rocks

Page 20: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

WebStorage

5MB

QUOTA_EXCEEDED_ERR

localStorage.setItem("key","text");

text = localStorage.getItem("key");

sessionStorage.setItem("key",text);

text = sessionStorage.getItem("key");

Sample: WebStorage Sample

Page 21: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

CSS3 Backgrounds,Bordersborder-radius text-shadow

transform / transition /

animation

/

cena

CSS Backgrounds and Borders Module Level 3

CSS Transforms CSS Animations

modern.IE

BrowserStack

Adobe® BrowserLab

Page 22: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

CSS3 Backgrounds,Borders

CSS Variables

border-radius: 10px 10px 10px 10px;

box-shadow: 10px 10px 10px #aaa;

text-shadow: 5px 5px 5px #aaa;

Sample: CSS3 Backgrounds, Borders

Sample: CSS Variables Module Level 1

Page 23: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

MediaQueries

bookmarklet

World Wide Web Consortium (W3C)

Microsoft Japan

NTT

Media Queries

Responsive design testing tool – Viewport Resizer –Device simulation toolResponsive Design Testing

Page 24: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

MediaQueries

Web

PC

@media screen and (max-width: 479px) {

.media-test { color: red; }

}

@media screen and (min-width: 480px) and (max-width: 1023px) {

.media-test { color: blue; }

}

@media screen and (min-width: 1024px) {

.media-test { color: green;}

}

Sample: MediaQueries

Page 26: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

WebFonts

Extension

/* using Google Web Fonts */

@font-face {

font-family: 'Allerta Stencil';

src: url(http://themes.googleusercontent.com/static/fonts/allertastencil/v4/Cd

SZfRtHbQrBohqmzSdDYKqcRvMv63bhrwdN_8Hu8N8.woff) format('woff');

}

.webfonts{

font-family: 'Allerta Stencil', sans-serif;

}

Sample: WebFonts

Web Fonts IT

Chrome - WhatFont

Chrome - Google Font Previewer for Chrome

Page 27: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

Video

YouTube - HTML5

iBooks Author - 26 HTML5- YouTube

Page 29: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

Canvasvar ctx = $("#canvas-area")[0].getContext("2d");

// x, y, radius, startAngle, endAngle [, anticlockwise ] )

ctx.arc(200, 100, 50, 0, Math.PI*2, false);

ctx.stroke();

Sample: Canvas

Page 30: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

Canvas + WebFonts

Canvas WebFonts WebFonts

1

WebFont Loader

ctx.fillStyle = "navy";

ctx.font = "72px 'Cabin Sketch', cursive";

ctx.fillText("WebFonts", 200 , 50);

Sample: Canvas + WebFonts

WebFont Loader - Google Web Fonts

Page 31: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

SVG

Thanks Daniel, wks, myakura.

Election 2010 - The Wall Street Journal Online

Raphaël—JavaScript Library

The New York Times

Page 32: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

SVG

Raphaël …

<svg width="800" height="300">

<circle cx="150" cy="150" r="100" stroke="blue" fill="white" stroke-width="5"

/>

</svg>

<img src="image.svg">

Sample: SVG

Sample: SVG + WebFonts

Raphaël · Australia

Raphaël · Text Rotation

Page 33: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

FullScreenAPI

Mac Window

Flickr - Photo Sharing!

Page 34: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

FullScreenAPI$("h1")[0].webkitRequestFullScreen()

$("h1")[0].mozRequestFullScreen()

Sample: FullScreen API

Page 35: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

History API History API(pjax)

github flickr facebook

sadah github

IMG_6077 | Flickr - Photo Sharing!

HTML5 Demo: HTML5 History API

Page 36: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

File API & Drag and DropDrag and Drop(& File API)

- Google+

Page 37: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

File API & Drag and Drop // jquery

// var files = e.originalEvent.dataTransfer.files;

var files = e.dataTransfer.files;

var fileName = files[0].name;

var fileSize = files[0].size;

var reader = new FileReader();

reader.onload = function() {

var line = reader.result;

}

reader.readAsText(file[0], 'UTF-8');

Sample: Drag and Drop

Page 39: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

microdata<div itemscope itemtype="http://data-vocabulary.org/Person">

私の名前は<span itemprop="name">ひらい さだあき</span>ですが、

みんなから「<span itemprop="nickname">さだ</span>」と呼ばれています。

私のホームページは、

<a href="http://sadah.github.com" itemprop="url">sadah.github.com</a> です

鎌倉に住んでおり、<span itemprop="title">エンジニア</span>として

<span itemprop="affiliation">カカクコム</span>に勤めています。

</div>

Sample: microdata

microdata -

- -

Page 40: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

Custom Data Attributes

Barack Obama

3.2.3.9 Embedding custom non-visible data with thedata-* attributes

Page 41: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

data URL Scheme

RFC 2397 - The "data" URL scheme

Page 42: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

data URL Scheme<img src="data:image/jpeg;base64,/9j/4AAQSkZJ ... "

var strDataURI = document.getElementById("canvas-area").toDataURL("image/pn

g");

Sample: data URL Scheme

Sample: data URL Scheme + Canvas

Sample: Video + Canvas + data URL Scheme +FullScreen

Page 43: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

PerformanceNavigation Timing

link prefetch script defer async

Navigation Timing

4.12 Links — HTML5

4.3 Scripting — HTML5

Page 44: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

PerformanceHTML5 HTTP 2.0 SPDY

draft-ietf-httpbis-http2-01 - Hypertext TransferProtocol version 2.0SPDY - The Chromium Projects

draft-mbelshe-httpbis-spdy-00 - SPDY Protocol

Page 45: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

Drag and Drop Canvas

Page 46: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

HTML5

Page 47: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Page 48: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Page 49: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

HTML5

HTML5

Page 50: Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5

The EndThank you so mach.

Familiar HTML5

@sada_h

http://bit.ly/h5m2013b2