490 likes | 603 Views
©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen ). Haute Ecole de la ville de Liège - Les départements Scientifique et Technologique - Section Informatique et Systèmes. ©Julian Hardenne 3TI Iset - 2011 Cours de Langages Avancés (R. Billen ).
E N D
©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen) Haute Ecole de la ville de Liège - Les départements Scientifique et Technologique - Section Informatique et Systèmes
©Julian Hardenne 3TI Iset - 2011 Cours de Langages Avancés (R. Billen) HTML5 & CSS3 Introduction Je ne pense pas que nous puissions déjà parler d’un web 3.0, mais des avancées significatives sont déjà implémentées et d’autres sont sur la bonne voie. Insérer nativement une vidéo ou un fichier audio est désormais possible, même si quelques contraintes sont toujours de mise. Le W3C et le WHATWG misent beaucoup sur la simplicité; plus besoin d’être un grand connaisseur pour faire quelque chose de beau, mais ne vous étonnez pas si vous devez faire face à plus de complexité si vous êtes perfectionniste (côté design, entendons nous bien). J’ai donc choisi de vous présenter ici plusieurs balises HTML (il faut savoir qu’il existe deux fois plus de balises en HTML5 qu’en HTML4) ainsi que les avancées en CSS3, déjà disponibles et supportées par tous les navigateurs majeurs actuels. Concernant la partie sur les WebForms 2.0, c’est actuellement grâce à Opéra que vous obtiendrez les meilleurs résultats. Ce travail ne contient donc pas une liste exhaustive des balises HTML5 ou des propriétés CSS3, ce n’est que la partie émergée de l’iceberg.
Logiciels utilisés • Conversion video : MiroVideoConverter (gratuit) • Conversion audio : Switch Sound File Converter de NCH (gratuit) • Pour les couleurs : la boite à couleurs (gratuit) • Pour les codes sources : Notepad++ (gratuit) • Les pages ont été testées sur : • Opéra 11.52 • IE9 • Firexox 7.01 • Safari 5.1.1 • Google Chrome (R15) ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Petite histoire de l’HTML • HTML 1 n’a jamais existé [1991]. • HTML 2 aux mains de l’IETF. • HTML 3 Sir Tim reprend le pouvoir. • HTML 4 un bazar très puissant. • XHTML 1 de l’ordre et de la discipline. • XHTML 1.1, on craint le pire • XHTML 2, adieu le web ! ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Pourquoi XHTML 2 ? • HTML était mort depuis la version 4. • Les spécifications étaient troubles. • Vive le XML. Arrivée du WHATWG ! • XHTML2 ne verra jamais le jour. • Ian Hickson prend position. • Naissance du Web Hypertext Application Technology WG ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
W3C vs WHATWG • Démocratie contre monarchie • Web Forms 2.0 et Web Apps 1.0 • Naissance de l’HTML5. • 2006, l’année de la lucidité, quoique… • HTML5 et HTML 5 • 2009 le certificat de décès est rendu public • L’XHTML est mort, vive la syntaxe XHTML ! ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
L’HTML5 • Commit-Then-Review & Review-Then-Commit • L’HTML5 sera une proposition de recommandation… • … en 2022 • 10 ans pour l’élément « abbr » • Une évolution, pas une révolution et c’est tant mieux. • Si vous codez en HTML, vous codez déjà en HTML5 ! ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
HTML5, les fondements • Ne pas réinventer la roue. • C’est grave, Doctype ? • <meta http-equiv="Content-Type" content="text/html; » charset=UTF-8">, c’est fini ! • <metacharset="UTF-8"> • <script type="text/javascript" src="file.js"></script> • <script src="file.js"></script> • <link rel="stylesheet" type="text/css" href="file.css"> • <link rel="stylesheet" href="file.css"> ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Les dinosaures vivent encore • http://ie6update.com/ • http://idroppedie6.com/ • http://idroppedie6.com/sites/1535-httptechrepairie • http://www.contrast.ie/blog/dear-ie6-i-hate-you/ • http://www.ie6nomore.com/ ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Rappel des termes • HTML • Une balise comporte • Des attributs • Contenant des valeurs • CSS • Un sélecteur • Définit des propriétés • Contenant des valeurs ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
L’élément a gonflé aux hormones • Un inline qui enveloppe ! • <a href="index.html"> <h2>Mon super site</h2> <p>Et tout ça dans un lien !</p></a> • Est-ce que ce sera bientôt supporté ? • Natif et légalisé ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
:visited, what the internet knows about you • http://dbaron.org/mozilla/visited-privacy • http://www.whattheinternetknowsaboutyou.com/all ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
<mark> • <strong> et <em> ne sont pas ce que l’ont croit ! • Donner une importance au texte • Pourquoi pas un span et la propriété background-color ? <figure> et <figcaption> • <figure> • BLOCK : Indique la présence d'une figure (image, code...) illustrant le texte. • <figcaption> • INLINE : Description de la figure. ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
CSS3 : support et attentes • http://www.normansblog.de/demos/browser-support-checklist-css3/ • http://www.caniuse.com/# • Polices exotiques • Ombrages • Transparence • Coins arrondis • Positionnement avancé • Rotation ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Les sélecteurs… késako ? • Liste des sélecteurs : http://www.w3.org/Style/css3-selectors-updates/WD-css3-selectors-20010126.fr.html#selectors • A + B : une balise qui en suit une autre • A[attribut] : une balise qui possède un attribut • A[attribut="Valeur"] : une balise, un attribut et une valeur • A[attribut*="Valeur"] : une balise, un attribut et un morceau de valeur ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Les types de police • .ttf : TrueType Font. Fonctionne sur IE9 et tous les autres navigateurs. • .eot : Embedded OpenType. Fonctionne sur Internet Explorer uniquement, toutes versions. Ce format est propriétaire de Microsoft. • .otf : OpenType Font. Ne fonctionne pas sur Internet Explorer • .svg : SVG Font. Le seul format reconnu sur les iPhone et iPad pour le moment. • .woff : Web Open Font Format. Nouveau format conçu pour le Web qui fonctionne sur IE9 et tous les autres navigateurs. ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Comment faire ? • @font-face { /* Définition d'une nouvelle police nommée LearningCurveProRegular*/ font-family: 'LearningCurveProRegular'; src: url('LearningCurve_OT-webfont.eot'); src: url('LearningCurve_OT-webfont.eot?#iefix') format('embedded-opentype'), url('LearningCurve_OT-webfont.woff') format('woff'), url('LearningCurve_OT-webfont.ttf') format('truetype'), url('LearningCurve_OT-webfont.svg#LearningCurveProRegular') format('svg'); } • h1 /* Utilisation de la police qu'on vient de définir sur les titres */ { font-family: 'LearningCurveProRegular', Arial, serif; } ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Restons simples • Trouver des polices : • http://www.fontsquirrel.com/ • http://www.dafont.com/fr/ • http://www.google.com/webfonts#AboutPlace:about • FontSquirrel et son générateur sympathique • http://www.fontsquirrel.com/fontface/generator • Le reste, c’est du copier-coller ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Arrière-plans multiples • Images de fond : body { background: url("soleil.png") fixed no-repeat top right, url("neige.png") fixed; } La première image de cette liste sera placée par-dessus les autres. Attention donc, l'ordre de déclaration des images a son importance : si vous inversez le soleil et la neige dans le code CSS précédent, vous ne verrez plus le soleil ! ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Le z-index, une solution ? • Les éléments avec le z-index le plus petit, seront les plus « visibles ». • Pas de position, pas de z-index • Le z-index ne nous aidera donc pas ! ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Opacity, la transparence… • la propriété opacity et la notation RGBa. • Opacity : • Avec une valeur de 1, l'élément sera totalement opaque : c'est le comportement par défaut. • Avec une valeur de 0, l'élément sera totalement transparent. • Il faut donc choisir une valeur comprise entre 0 et 1. Par exemple avec 0.6, votre élément sera opaque à 60%... et on verra donc à travers ! ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Tout doit disparaître ! • Opacity appliqué à un élément rendra tout le contenu de cet élément transparent. • Pour ne modifiez que la transparence du bloc actuel, faites confiance à la notation RGBa. ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
RGB…a p { background-color: rgb(0,0, 255); /* Pour les anciens navigateurs */ background-color: rgba(0,0, 255,0.5); /* Pour les navigateurs plus récents */ } ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Et si on arrondissait les angles ? p { border-radius: 10px 5px 10px 5px; } • En haut à gauche • En haut à droite • En bas à droite • En bas à gauche ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Des courbes elliptiques • Il est également possible d'affiner l'arrondi de nos angles en créant des courbes elliptiques. • Il suffit d’indiquer 2 valeurs à la suite p { border-radius: 200px 100px; border-top-left-radius: 200px 100px; top left } ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
In the shadow… Générateur d’angles • Les ombres des boîtes • Les ombres du texte • http://border-radius.com ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
box-shadow : les ombres des boîtes • La propriété box-shadow s'applique à tout le bloc et prend 4 valeurs dans cet ordre : • Le décalage vertical de l'ombre • Le décalage horizontal de l'ombre • L'adoucissement du dégradé • La couleur de l'ombre ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Mise à l’ombre… p { box-shadow: 6px 6px 0px black; } • On peut aussi rajouter une quatrième valeur facultative : inset. • Dans ce cas, l'ombre sera placée à l'intérieur du bloc, pour donner un effet enfoncé. ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Ombre du texte p { text-shadow: 2px 2px 4px blue; } • IE à partir de IE10 ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Rotation, un must • transform: rotate(Xdeg) • Encore mal géré, obligé d’utiliser les préfixes moteurs. ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Trop de DIV tue le DIV • <header> • <footer> • <nav> • <section> • <aside> • <article> ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Résumé d’uni mise en page • <header> - l’en-tête • <footer> - le pied-de-page • <nav> - les principaux liens de navigation - Menu(s) du site • <section> - les parties thématiques de la page • <aside> - les informations complémentaires • <article> - Un article provenant d'une autre page ? ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
HTML5shiv • Placez ce code dans la balise <head> • <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com /svn/trunk/html5.js"></script> <![endif]--> • Sans rentrer dans le détail, sachez que <!--[if lt IE 9]> est un commentaire conditionnel. • Ne sera lu que par IE < 9 ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Rappel sur le centrage de blocs • width: 350px; • On a indiqué une largeur (obligatoire) • margin: auto; • On peut donc demander à ce que le bloc soit centré avec "auto " • Text-align permettra dès lors de centrer le contenu. • Centrage vertical impossible comme ça. ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Le centrage vertical • vertical-align ne permet pas : • De positionner verticalement un texte dans un bloc quelconque (DIV, P, etc...) • De positionner verticalement un bloc dans un autre bloc. • Ça sert à quoi ? • Principalement pour les tableaux… • Ou grâce à l’astuce table-cell • (impossible pour IE<7) ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Flottant à tout-va • plutôt que Float: • inline-block • Comportement des input par défaut • fonctionnent seulement pour les inline sous IE < 8 • Ça sort d’où ? • Display • inline • block • inline-block ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Et après ? Retour à vertical-align: • baseline: aligne la base de l'élément avec celle de l'élément parent (par défaut) • top: aligne en haut • middle: aligne au milieu • bottom: aligne en bas • (valeur en px ou %) : aligne à une certaine distance de la ligne de base (baseline) ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Accepter l’échec • IE fait des progrès • Problème des mises à jour utilisateur • dégradation gracieuse • Accepter l’imperfection du design mais garder la perfection de la navigation ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
WebForms 2.0 • autofocus • required • placeholder • autocomplete • <time>, donner de l’importance aux dates citées • La progressbar fait son entrée • Max et Value ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Javascript inutile ? • <input type="email" /> • <input type="url" /> • <input type="tel" /> • <input type="number" /> • <input type="range" /> • <input type="color" /> ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Manipuler une date • <input type="date" /> • date : pour la date (05/08/1985 par exemple) • time : pour l'heure (13:37 par exemple) • week : pour la semaine • month : pour le mois • datetime : pour la date et l'heure • (avec gestion du décalage horaire) • datetime-local : pour la date et l'heure • (sans gestion du décalage horaire) ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Audio • Format : • MP3 • AAC : utilisé majoritairement par Apple sur iTunes, c'est un format de bonne qualité. Les iPod, iPhone et autres iPad savent les lire sans problème. • OGG : le format OggVorbis est très répandu dans le monde du logiciel libre, notamment sous Linux. • WAV (format non compressé) : A éviter ! ! ! (trop lourd) • Une solution : • Proposer plusieurs sources ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Insérer de l’audio • <audio controls> <source src="rango.mp3"></source> <source src="rango.ogg"></source> Veuillez mettre votre navigateur à jour ! </audio> ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Video • <video src= " chemin "></video> • poster (image à la place de la vidéo, avant lancement) • controls (barre de contrôle) • width, height • loop(jouer en boucle) • autoplay(la vidéo sera jouée en boucle) • Preload (on ne peut pas le forcer, ça dépend du nav.) • auto (par défaut) • metadata : charge uniquement les métadonnées (durée, dimensions, etc.). • none : pas de préchargement. Utile si vous nous voulez pas gaspiller de bande passante sur votre site. ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Formats video • 3 éléments indispensables : • Un format conteneur : c'est un peu comme une boîte qui va servir à contenir les deux éléments ci-dessous. • Un codec audio • Un codec vidéo • H.264 : l'un des plus puissants et des plus utilisés aujourd'hui... mais il n'est pas 100% gratuit. (flou juridique) • OggTheora : un codec gratuit et libre de droits, mais moins puissant que H.264. (Linux) • WebM : un autre codec gratuit et libre de droits, plus récent. Proposé par Google, c'est le concurrent le plus sérieux à H.264 à l'heure actuelle. ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Audio et Video ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen) http://www.mirovideoconverter.com/
WebApps • Canvas : permet de dessiner au sein de la page web, à l'intérieur de la balise HTML <canvas>. • SVG : permet de créer des dessins vectoriels au sein des pages web. • Drag & Drop : permet le glisser / déposer des objets dans la page web. • Web Sockets : permet des échanges plus rapides en temps réel entre le navigateur du visiteur et le serveur qui gère le site web (c'est une sorte d'AJAX amélioré). C'est un peu l'avenir pour les applications web, qui pourront devenir aussi réactives que les vrais programmes. • WebGL: permet d'introduire de la 3D dans les pages web, en utilisant le standard de la 3D OpenGL. Les scènes 3D sont directement gérées par la carte graphique. ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)
Bibliographie • CSS avancées Vers HTML 5 et CSS 3, Raphaël Goetter, Eyrolles. • HTML5 pour les Web Designers, Jeremy Keith, Eyrolles • Site du Zéro, http://www.siteduzero.com/ • http://html5demos.com/ • http://www.alsacreations.com/article/lire/947-osez-creer-site-html5-css3.html • http://www.html5.fr/ • http://www.w3.org/ • Ainsi que les sources citées dans la présentation... ©Julian Hardenne 3TI Iset - 2011 Langages Avancés (R. Billen)