Transcript diaporama
©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)
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 !
<meta charset="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-selectors20010126.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)
Générateur d’angles
http://border-radius.com
In the shadow…
Les ombres des boîtes
Les ombres du texte
©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 Ogg Vorbis 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)
Ogg Theora : 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
http://www.mirovideoconverter.com/
©Julian Hardenne 3TI
Iset - 2011
Langages Avancés (R. Billen)
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-osezcreer-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)