Figures
Exemple : Image
<figure>
<img
src="favicon-192x192.png"
alt="The beautiful MDN logo.">
<figcaption>MDN Logo</figcaption>
</figure>
Exemple : Code
<figure>
<pre>
function Hello() {
let txt = 'Hello World'
console.log(txt)
}</pre>
<figcaption>Get browser details using <code>navigator</code>.</figcaption>
</figure>
Exemple : Citation
<figure>
<blockquote>If debugging is the process of removing software bugs,
then programming must be the process of putting them in.</blockquote>
<figcaption><cite>Edsger Dijkstra</cite></figcaption>
</figure>
Exercice
Réécrivez le code HTML suivant en mobilisant les balises figure
et figurecaption
.
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Des visages...</title>
<meta charset="utf-8">
</head>
<body>
<img src="visage.png" alt="Visage de femme noire sur fond blanc">
<p>Auto-portrait</p>
</body>
</html>
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Des visages...</title>
<meta charset="utf-8">
</head>
<body>
<figure>
<img src="visage.png" alt="Visage de femme noire sur fond blanc">
<figcaption>Auto-portrait</figcaption>
</figure>
</body>
</html>
Insérer du son (audio)
Syntaxe : Balise <audio>
HTML5 a prévu une balise spéciale pour insérer du son : <audio>.
L'utilisation standard de la balise requiert d'indiquer le nom du fichier source via l'attribut src.
Le format mp3 est reconnu par l'ensemble des navigateurs. D'autres formats sont possibles selon les navigateurs, comme wav ou ogg notamment.
Exemple : Insertion d'un fichier audio
<audio src="maChanson.mp3"></audio>
À ce stade, la source audio est bien intégrée mais le lecteur n'apparaît pas. Il faut pour cela ajouter l'attribut "controls" dans la balise <audio>.
<audio src="maChanson.mp3" controls>Veuillez mettre à jour votre navigateur !</audio>
Les anciens navigateurs qui ne comprennent pas la balise afficheront le texte qui se trouve à l'intérieur.
Exemple : Insertion de plusieurs versions d'un fichier audio
Il est possible de proposer plusieurs sources dans différents formats en précisant à chaque fois le MIME type avec l'attribut "type".
<audio controls>
<source src="maChanson.ogg" type="audio/ogg">
<source src="maChanson.mp3" type="audio/mp3">
</audio>
Le navigateur choisira le format qu'il reconnaît.
Exercice
Intégrez le fichier audio suivant dans une page HTML.
Utilisez les attributs "src" et "controls".
<--! Ressource locale -->
<audio src="audio.mp3" controls>
Le fichier son n'est pas pris en charge par votre navigateur
</audio>
Choisissez une musique sur un site diffusant de la musique sous licence libre comme dogmazic.net et intégrez-la à votre page (sans la copier sur votre serveur).
On utilise l'URL distante de la musique.
<audio src="https://...
<--! Ressource à distance -->
<audio src="https://freemusicarchive.org/music/download/179d4fd3a596779d670cd9792990bfbde09c3479" controls>
Le fichier son n'est pas pris en charge par votre navigateur
</audio>
Insérer une vidéo (video)
Syntaxe : Balise <video>
HTML5 a prévu une balise spéciale pour insérer une vidéo : <video>.
L'utilisation de cette balise est similaire à la balise <audio>, et plusieurs formats sont aussi possibles.
La source de la vidéo doit être renseignée (attribut src ou élément source).
Comme pour la balise <audio>, les commandes de lecture apparaissent en ajoutant l'attribut 'controls' à la balise <video>.
Exemple : Ajout d'une vidéo avec plusieurs formats
<video id="maVid" poster="img1.jpg" controls width="320" height="240">
<source src="maVideo.mp4" type="video/mp4" />
<source src="maVideo.webm" type="video/webm" />
<source src="maVideo.ogv" type="video/ogg" />
Alternative (balise non reconnue par le navigateur) : lien de téléchargement, message...
</video>
Exercice
Accéder au site http://download.blender.org/peach/bigbuckbunny_movies/ où est disponible le trailer de Big Buck Bunny. Intégrer le fichier 'big_buck_bunny_480p_stereo' à une page HTML en respectant les règles suivantes :
utilisation de sources multiples ;
on listera ces dernières dans l'ordre .mov, .avi puis .ogg ;
ne pas oublier de renseigner le MIME type ;
observer si le format est reconnu par le navigateur au fur et à mesure.
<source src="" type=""/>
<video controls>
<source src="http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_stereo.avi" type="video/x-msvideo"/>
<source src="http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_h264.mov" type="video/quicktime"/>
<source src="http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_stereo.ogg" type="audio/ogg"/>
Veuillez mettre à jour votre navigateur !
</video>
Initiation à Canvas
Définition : Canvas
La balise HTML <canvas> est utilisée pour faire des dessins graphiques à l'aide d'un script JavaScript. L'élément <canvas> est juste un conteneur pour les dessins, il faut utiliser un script pour dessiner. Canvas permet de dessiner des lignes, des carrés, des cercles, des textes...
Exemple : Code minimal
<canvas id="mon_canvas" width="500" height="500" />
<script type="text/javascript">
var c = document.getElementById("mon_canvas");
var ctx = c.getContext('2d');
// On effectue ici toutes les opérations de dessin
</script>
On commence par créer une balise d'identifiant mon_canvas définissant une zone de dessin de 500px de largeur et 500px de hauteur.
On utilise ensuite le DOM pour stocker l'élément mon_canvas dans la variable c.
On lui applique alors la fonction getContext() qui retourne le contexte de dessin (2D ou 3D), c'est-à-dire un ensemble de méthodes et attributs qui permettent de dessiner et manipuler les images dans l'élément mon_canvas. Dans le cadre de l'API Canvas il s'agira toujours de getContext('2d'), getContext('3d') étant du WebGL.
Exemple : Dessiner un carré rouge
<!DOCTYPE html>
<html><body>
<canvas id="mon_canvas" width="200" height="200"
style="border:1px solid #c3c3c3;">
Le navigateur ne reconnaît pas l'élément Canvas
</canvas>
<script>
var canvas = document.getElementById("mon_canvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "#FF0000";
ctx.fillRect(0,0,100,100);
</script>
</body>
</html>
La propriété fillStyle permet de définir la couleur de remplissage.
La méthode fillRect(x,y,largeur, longueur) dessine un rectangle partant de (x,y).
Exemple : Dessiner une ligne
<script>
var canvas = document.getElementById("mon_canvas");
var ctx = canvas.getContext("2d");
ctx.moveTo(0,100);
ctx.lineTo(200,100);
ctx.stroke();
</script>
La fonction moveTo(x,y) permet de se déplacer au point de coordonnées (x, y) en partant du coin supérieur gauche, cela sans effectuer de tracé.
La fonction lineTo(x,y) définit un tracé jusqu'au point de coordonnées (x, y).
La fonction stroke() permet de dessiner le tracé défini précédemment.
Exercice
Appliquer les fonctions de l'API Canvas. Soit un canvas de taille (200,200).
Dessiner un carré en partant du milieu du canvas de taille (50,50).
Au lieu de dessiner un carré avec "ctx.rect(100,100,50,50)", dessiner un carré en utilisant les fonctions moveTo(x,y) et lineTo(x,y).
Rappel : code de base
<canvas id="mon_canvas" width="200" height="200" />
<script type="text/javascript">
var c = document.getElementById("mon_canvas");
var ctx = c.getContext('2d');
// On effectue ici toutes les opérations de dessin
</script>
<!DOCTYPE html>
<html>
<body>
<canvas id="mon_canvas" width="200" height="200"
style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>
<script>
var canvas = document.getElementById("mon_canvas");
var ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(100,100);
ctx.lineTo(150,100);
ctx.lineTo(150,150);
ctx.lineTo(100,150);
ctx.lineTo(100,100);
ctx.closePath();
ctx.lineWidth = 5;
ctx.stroke();
</script>
</body>
</html>
Colorier le carré en rouge.
ctx.fillStyle
ctx.fill()
<script>
var canvas = document.getElementById("mon_canvas");
var ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(100,100);
ctx.lineTo(150,100);
ctx.lineTo(150,150);
ctx.lineTo(100,150);
ctx.lineTo(100,100);
ctx.closePath();
ctx.lineWidth = 5;
ctx.fillStyle = "#FF0000";
ctx.fill();
ctx.stroke();
</script>