Les dernières avancées html5 & css3 en action !

39
Donnez votre avis ! Depuis votre smartphone, sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les TechDays http://notes.mstechdays.fr

description

Dans cette session, vous découvrirez les nouveaux standards supportés par Internet Explorer 10. Coté CSS3, on verra ainsi des choses comme grid layout, animations ou transitions. Coté nouvelles APIs, nous passerons un peu de temps sur la gestion du drag-n-drop, IndexedDB, la gestion de l'Application Cache ou bien encore la gestion du tactile. Pour découvrir tout cela, nous verrons à chaque fois de petits exemples d'illustration ainsi que des sites plus « complexes » les mettant en oeuvre. Présentation jouée pendant les MS Techdays 2013: http://www.microsoft.com/france/mstechdays/programmes/2013/fiche-session.aspx?ID=4a174b26-32b7-4d4c-8523-ad3a3228ef53 Retrouvez tous les exemples de code sur mon blog ici: http://blogs.msdn.com/b/davrous/archive/2012/11/03/demos-links-amp-articles-associated-to-htm5-amp-css3-latest-features-in-action-build-3-114.aspx

Transcript of Les dernières avancées html5 & css3 en action !

Page 1: Les dernières avancées html5 & css3 en action !

Donnez votre avis !Depuis votre smartphone, sur : http://notes.mstechdays.fr

De nombreux lots à gagner toutes les heures !!!

Claviers, souris et jeux Microsoft…

Merci de nous aider à améliorer les TechDays

http://notes.mstechdays.fr

Page 2: Les dernières avancées html5 & css3 en action !

Les dernières avancées HTML5 & CSS3 en action !

David RoussetTechnical Evangelist

Microsoft France

Code / Développement

@davroushttp://blogs.msdn.com/davrous

Page 3: Les dernières avancées html5 & css3 en action !

Vous allez voir que…

• Microsoft est vraiment engagé dans les standards

• IE10 fournit une expérience immersive• IE10 fonctionne très bien au tactile

• Bonus : les mêmes technologies seront utilisées pour construire des applications Windows 8

Page 4: Les dernières avancées html5 & css3 en action !

• Animations et autres nouveautés CSS3 25’

• Nouvelles APIs HTML5 25’

• Support du Touch 10’

Agenda

Agenda

Page 5: Les dernières avancées html5 & css3 en action !

Animations et autres nouveautés CSS3

Page 6: Les dernières avancées html5 & css3 en action !

Internet Explorer 10 : nouveaux layouts CSS et SVGCSS 2D TransformsCSS 3D TransformsCSS AnimationsCSS Backgrounds & BordersCSS ColorCSS FlexboxCSS FontsCSS Grid AlignmentCSS HyphenationCSS Image Values (Gradients)

CSS Media QueriesCSS Multi-column LayoutCSS NamespacesCSS OM ViewsCSS Positioned Floats (Exclusions)CSS SelectorsCSS TransitionsCSS Values and UnitsICC Color ProfilesSVG Filter EffectsSVG, standalone and in HTML

Page 7: Les dernières avancées html5 & css3 en action !

CSS Grid Layout pour une planche de jeu

Page 8: Les dernières avancées html5 & css3 en action !

<div id="grid"> <div id="title">Game Title</div> <div id="score">Score</div> <div id="stats">Stats</div> <div id="board">Board</div> <div id="controls">Controls</div> </div>

<style type="text/css"> #grid { display: -ms-grid;

-ms-grid-columns: auto 1fr; -ms-grid-rows: auto 1fr auto; }

#title { -ms-grid-column: 1; -ms-grid-row: 1 } #score { -ms-grid-column: 1; -ms-grid-row: 3 } #stats { -ms-grid-column: 1; -ms-grid-row: 2; -ms-grid-row-align: start } #board { -ms-grid-column: 2; -ms-grid-row: 1; -ms-grid-row-span: 2 } #controls { -ms-grid-column: 2; -ms-grid-row: 2; -ms-grid-column-align: center } </style>

HTML & CSS de la planche de jeu

Page 9: Les dernières avancées html5 & css3 en action !

Démo: usage simple du CSS Grid Layout

Page 10: Les dernières avancées html5 & css3 en action !

@media (orientation: landscape) { #title { -ms-grid-column: 1; -ms-grid-row: 1 } #score { -ms-grid-column: 1; -ms-grid-row: 3 } #stats { -ms-grid-column: 1; -ms-grid-row: 2; -ms-grid-row-align: start } #board { -ms-grid-column: 2; -ms-grid-row: 1; -ms-grid-row-span: 2 } #controls { -ms-grid-column: 2; -ms-grid-row: 2; -ms-grid-column-align: center } }

@media (orientation: portrait) { #title { -ms-grid-column: 1; -ms-grid-row: 1 } #score { -ms-grid-column: 1; -ms-grid-row: 2 } #stats { -ms-grid-column: 2; -ms-grid-row: 1; -ms-grid-row-span: 2 } #board { -ms-grid-column: 1; -ms-grid-row: 3; -ms-grid-column-span: 2 } #controls {-ms-grid-column: 1; -ms-grid-row: 4; -ms-grid-column-span: 2; -ms-grid-column-align: center } }

Mélangeons Grid & Media Queries

Page 11: Les dernières avancées html5 & css3 en action !

Démo: CSS Grid Layout et Media Queries

Page 12: Les dernières avancées html5 & css3 en action !

• CSS3 3D Transform– Simplement une extension de CSS Transform en

3 dimensions• CSS3 Multi-columns & Hyphenaton

– Reparti le texte en colonnes & gère la césure pour améliorer la lisibilité

• CSS3 Positionated Floats– Fait couler le contenu autour d’elements

positionnés

CSS3 pour les transformations et le flux

Page 13: Les dernières avancées html5 & css3 en action !

Démo: CSS 3-D transforms, columns & positionated floats

Page 14: Les dernières avancées html5 & css3 en action !

Les animations avec CSS3Spécification Transitions Animations

Caractéristiques DélaiDuréeFonction sur le tempsPropriétés à animer

DélaiDuréeFonction sur le temps

Évènementstransitionend animationstart

animationendanimationiteration

Comment ça marche ?

Changez la valeur d’une propriété et le navigateur s’occupe de tout. Mode “Fire & Forget”

Keyframes: définit quelles propriétés à animer, vers quelles valeurs précisément dans l’échelle de temps.

Page 15: Les dernières avancées html5 & css3 en action !

Démo: CSS3 animations & transforms

Page 16: Les dernières avancées html5 & css3 en action !

Idée d’intégration dans un jeu

Page 17: Les dernières avancées html5 & css3 en action !

Nouvelles APIs HTML5

Page 18: Les dernières avancées html5 & css3 en action !

Internet Explorer 10 : nouvelles APIs HTML5 Animation FramesData URIDOM Element TraversalDOM HTMLDOM Level 3 CoreDOM Level 3 EventsDOM StyleDOM Traversal and RangeDOMParser and XMLSerializerECMAScript 5File Reader APIFile SavingFormData

HTML5 Application CacheHTML5 asyncHTML5 CanvasHTML5 Drag and dropHTML5 Forms and ValidationHTML5 GeolocationHTML5 History APIHTML5 ParserHTML5 SandboxHTML5 SelectionHTML5 Semantic elementsHTML5 Video and audioICC Color Profiles

IndexedDBPage VisibilityPointer (Mouse, Pen, and Touch) EventsResource TimingSelectors API Level 2Timing callbacksWeb MessagingWeb SocketsWeb WorkersXHTML/XMLXMLHttpRequest (Level 2)

Page 19: Les dernières avancées html5 & css3 en action !

• Cache basé sur un manifeste pour des scenarios déconnectés

• Choisissez les fichiers à cacher: HTML, CSS, JS & vos ressources

• Permet de rendre disponible vos ressources au delà du cache local HTTP

• Resynchronisez les fichiers via une MAJ du manifeste

HTML5 application cache

Page 20: Les dernières avancées html5 & css3 en action !

<html manifest=“test.appcache">

<head>

...

<link href="yourstyles.css“ rel="stylesheet"> <script src="yourcode.js"></script> </head> <body>

...

<video … src=“yourvideo.mp4” …>

</video>

...

</body>

</html>

L’usage d’app cache via le fichier de manifest

Cache Manifest#12/02/2013 v10Cache:index.htmlyourstyles.cssyourcode.js...yourvideo.mp4

Network:*

Fichier HTML Fichier de manifest

MIME Type: text/cache-manifest

Page 21: Les dernières avancées html5 & css3 en action !

• Permet de lire les donnes fournies par l’utilisateur

• Nouveaux objets pour représenter les données:– Blob, File, FileReader

• Nouvelles méthodes d’accès aux données:• readAsArrayBuffer• readAsBinaryString• readAsText• readAsDataURL

File API

Page 22: Les dernières avancées html5 & css3 en action !

Lire du texte avec l’objet FileReaderfunction startRead() {

// Obtain input element through DOM. var file = document.getElementById('file').files[0];

if (file) { getAsText(file); }}

function getAsText(readFile) { var reader = new FileReader();

// Read file into memory as UTF-16 reader.readAsText(readFile, "UTF-16");

// Handle progress, success, and errors reader.onprogress = updateProgress; reader.onload = loaded; reader.onerror = errorHandler;}

Page 23: Les dernières avancées html5 & css3 en action !

• Drag-n-drop HTML5– Vous pouvez rendre n’importe quel élément déplaçable– Glissez/déposez des fichiers depuis le bureau vers le

navigateur

• Formulaires HTML5– Remplace les validations de formulaires JavaScript– Utilisez les interfaces utilisateurs natives du navigateur

ou personnalisez-les

Drag-n-drop & formulaires HTML5

Page 24: Les dernières avancées html5 & css3 en action !

Démo: formulaires HTML5

Page 25: Les dernières avancées html5 & css3 en action !

Idée d’intégration dans un jeu

Page 26: Les dernières avancées html5 & css3 en action !

AuriculaireDB IndexedDB

• Stockage, Indexation et recherche de données

• Stockage de paires « clé-valeur » à la NoSQL

• Indexation en utilisant un attribut objet

• Pas de dépendances vis-à-vis de l’implémentation du navigateur

Page 27: Les dernières avancées html5 & css3 en action !

Démo: utilisation d’IndexedDB pour stocker des images

Page 28: Les dernières avancées html5 & css3 en action !

Single page web application

Page 29: Les dernières avancées html5 & css3 en action !

WebWorkers

• L’approche JavaScript vers le multi-threading

• Libère le UI thread en envoyant des requêtes aux workers

• Communication avec les workers via postMessage()

• Pas d’accès DOM

Page 30: Les dernières avancées html5 & css3 en action !

Démo: utilisation des WebWorkers pour appliquer des filtres aux images

Page 31: Les dernières avancées html5 & css3 en action !

Nouvelles APIs HTML5

Page 32: Les dernières avancées html5 & css3 en action !

Pointer Events (touch, stylet, souris)

• Ecrivez votre code une seule fois pour le tactile, le stylet et la souris

• Les sites écrits uniquement pour la souris fonctionne automatiquement

• Patterns connus d’évènements DOM de la souris, avec des extensions pour le touch

Page 33: Les dernières avancées html5 & css3 en action !

Pour faire de belles applications web tactiles

• Évènements MSPointer pour cibler le tactile, la souris et le stylet de manière unifiée

• Évènements MSGesture pour facilement reconnaitre certaines manipulation (zoom, rotation, hold, etc.)

• Propriétés CSS -ms-touch-action pour indiquer comment chaque zone doit se comporter face au touch

• Microsoft a soumis la spécification au W3C:– http://www.w3.org/Submission/pointer-events/

Page 34: Les dernières avancées html5 & css3 en action !

Démo: utilisation des Pointer Events

Page 35: Les dernières avancées html5 & css3 en action !

Démo: Modern.IE – un super outil pour vous rendre la vie plus heureuse

Page 36: Les dernières avancées html5 & css3 en action !

Pour aller plus loin…• Pleins de démos ici: ie.microsoft.com/testdrive

Hands On: Windows 8 HTML5 Platform: ie.microsoft.com/testdrive/Graphics/hands-on-css3/

Certaines démos expliquées ici: blogs.msdn.com/ie

• http://modern.ie avec 3 mois offerts à Browser Stack !

• Mon blog: blogs.msdn.com/davrous Vous retrouverez toutes les démos de cette session

et des liens vers des articles

Page 37: Les dernières avancées html5 & css3 en action !

Pour aller plus loin sur HTML5 aux Techdays…Introduction au dev Win8 avec HTML5 et JavaScript (Mardi 13h)Développer pour tous les navigateurs (Mardi 14h30)Coding for Fun (Mardi 17h30)Techniques d'accélération des pages Web (Mercredi 11h) Concevoir des interfaces tactiles à destination de Windows 8 et du web (Mercredi 14h30)HTML5 pour les développeurs WP8 (Mercredi 16h) Tout sur les SPA (Mercredi 17h30)

Page 38: Les dernières avancées html5 & css3 en action !

Questions ?

Page 39: Les dernières avancées html5 & css3 en action !

Formez-vous en ligne

Retrouvez nos évènements

Faites-vous accompagner gratuitement

Essayer gratuitement nos solutions IT

Retrouver nos experts Microsoft

Pros de l’ITDéveloppeurswww.microsoftvirtualacademy.com

http://aka.ms/generation-app

http://aka.ms/evenements-developpeurs

http://aka.ms/itcamps-france

Les accélérateursWindows Azure, Windows Phone,

Windows 8

http://aka.ms/telechargements

La Dev’Team sur MSDNhttp://aka.ms/devteam

L’IT Team sur TechNethttp://aka.ms/itteam