Le HTML (HyperText Mark-Up Language) est un langage dit de « marquage » (de structuration) dont le rôle est de formaliser l'écriture.
Le langage HTML est un standard du web. Il est donc le support de l'information sur le web et peut être de ce fait utilisé sur n'importe qu'elle système.
Il se compose de balises délimitées par les symboles < et > qui permettent d'indiquer la façon dont doit être présenté le document et les liens qu'il établit avec d'autres documents. Le HTML est interprété côté client grâce aux navigateurs web.
Le Web est ainsi une énorme archive vivante composée d’un ensemble de sites web proposant des pages web pouvant contenir du texte mis en forme, des images, des sons, des vidéos, etc.
Avec un navigateur, allez à l’adresse http://mathartung.xyz/nsi/media/ihmweb
Que représente l'endroit où vous êtes arrivé ? (Une page web que vous pouvez simuler une valeur approchée de π avec la méthode Monte Carlo).
Faites un clic droit puis faites « afficher le code source de la page », que remarquez-vous ? (un ensemble de balises HTML, toute page web est constituée de ce type de code, c'est le navigateur web qui l'interprète afin d'afficher des informations bien structurées).
HTML est une des trois inventions à la base du World Wide Web, avec le Hypertext Transfer Protocol liant les différentes ressources d'Internet avec des hyperliens. Aujourd'hui, ces documents sont appelés « page web » (HTML, Protocol et Hypertext).
Il est créé en 1989 par Tim Berners-Lee pour pouvoir écrire des documents hypertextuels liant les différentes ressources d'Internet avec des hyperliens.
De cette date à nos jours, il a été en constante évolution afin de répondre aux attentes des développeurs de navigateurs web. On utilise encore le HTML4.0, mais depuis 2011 les créateurs de site internet sont invités à utiliser le HTML5.
<!doctype html>
<html lang="fr"> <!--Ceci est le début d'un document de type HTML.-->
<head> <!--Ceci est le début de la zone d'en-tête-->
<meta charset="utf-8">
<title>Titre de la page</title>
</head> <!--Ceci est la fin de la zone d'en-tête.-->
<body> <!--Ceci est le début du document proprement dit.-->
test
...
</body> <!--Ceci est la fin du document proprement dit.-->
</html> <!--Ceci est la fin d'un document de type HTML.-->
Il permet de préciser le type de document :
En tout début de fichier, placer: <!doctype html> Indique que la page web est en HTML5
<html>
Il est possible d’ajouter des paramètres afin de préciser la langue : Dans la balise HTML :
<html lang="fr">
<body>
<body bgcolor="…"> : couleur de fond en code HTML ou en anglais.
<body text="…"> : couleur de texte.
<body link="…"> : couleur des liens.
<body vlink="…"> : couleur des liens visités.
<body alink="…"> : couleur d’un lien actif.
<meta>
Pour la gestion des caractères accentués, l’encodage des pages web est dépendant de la table ascii utilisée. En général, afin d’éviter tout problème d’encodage de caractère (caractère accentué mal affiché) :
dans la zone du contenu header placer :
<head>
<meta charset="utf-8">
</head>
Il y a d’autres balises <meta>
. La syntaxe globale est :
<meta name="…" content="…">
Des exemples pour Name (nom du paramètre) :
<header>
: spécifie une introduction, ou un groupe d’élément de navigation (entête de document).
<footer>
: définit un pied de page.
<section>
: définit les sections, sous parties dans un document.
<article>
: définit une partie indépendante du site (peut contenir un header et un footer).
<aside>
: il s’agit d’un bloc à associer au contenu qui le précède (ex définition de termes, ou présentation d’exemples…).
<nav>
: définit un bloc de navigation.
Ces balises permettent de construire la structure en arbre des pages web, on appelle cette structure le DOM (Document Object Model).
Avant HTML5, le développeur qui voulait organiser sa page n'avait pas à sa disposition des balises identifiant clairement ses groupes. La solution adoptée était d'organiser grâce aux bloc « div » et de les identifier par des id ou des classes (Ces notions seront définies plus loin dans le cours). HTML5 apporte des balises spécifiques pour pallier ce manque. Elles apportent de la clarté dans la lecture du code source.
Ces deux images montrent les balises utilisées avant HTML5 (image de gauche) et avec HTML5 (image de droite) pour organiser son contenu.
Une balise est un élément de texte (un nom) encadré par le caractère inférieur (<) et le caractère supérieur (>). Par exemple « <B> ».
Elles sont insensibles à la casse.
Elles encadrent l'élément sur lequel elles agissent, en résumé, toute balise ouverte doit être refermée. Une balise fermante est précédée du caractère /.
Exemple :
<marqueur> Votre texte formaté </marqueur>
Il existe deux types de balises :
Dans ce contexte deux balises sont souvent utilisées afin d’y ajouter des paramètres de
formatage :
La balise <div>
et la balise <span>
.
L’utilisation des paramètres sera expliquée lors de la présentation des CSS3. Quelques balises standard :
<!--
Commentaire-->
: Commentaire qui ne s'affiche pas dans le navigateur.
<b>
zone en gras</b>
: zone en gras.
<i>
zone en italique</i>
: zone en italique.
<u>
souligne le texte</u>
: souligne le texte.
<br />
: Retour à la ligne.
<pre>
…</pre>
: texte préformaté.
<sub>
indice</sub>
: indice.
<sup>
exposant</sup>
: exposant.
Ces balises ne sont là que pour illustrer, elle ne structure pas le document.
<strong>
Mettre en évidence une information</strong>
: Mettre en évidence une information.
<p>
…</p>
: Paragraphe.
<mark>
marquer du contenu</mark>
: marquer du contenu.
Il y a 6 niveaux de titres :
<h1>
Titre 1</h1>
: <h2>
Titre 2</h2>
: <h6>
Titre 6</h6>
: <hgroup>
(définition de plan ou de table des matières).
Les balises pour définir des listes :
<ul>
…</ul>
: liste non ordonnée.
<ol>
...</ol>
: liste ordonnée.
<li>
: élément de liste.
Voici un exemple :
<ul>
<li> cas 1</li>
<li> cas 2</li>
<li> cas 3</li>
<li> cas 4</li>
</ul>
Les liens permettent à la suite d’un clic sur un mot ou une image de se rendre :
Syntaxe :
<a href="adresse ou URL (Uniforme Ressource Location">Données (balisées ou non)</a>
Lien externe => http://google.fr
<a href="http://google.fr">Aller sur Google</a>
Lien interne => chemin vers le fichier HTML dans le répertoire. Lien au sein de la page.
Exemple :
<h1 name="debut">Début du document</h1> ou <h1 id="debut">Début du document</h1>
<a href="#debut">Aller au début</a>
<a href="…" option>…</a>
Exemples d'options (attribut) :
<a href="…" title="lien vers ...">Aller au lien</a>
<a href=lien" target="_blank">Ouvre le lien dans une nouvelle page</a>
<a href="mailto :adresse_mail">…</a>
<a href="fichier_a_telecharger" download>Télécharger le fichier</a>
Voici le code qui permet d’afficher une image :
<img src="http://mathartung.xyz/nsi/img/prof.png" />
Exemples d'option (attribut) :
<img src="http://mathartung.xyz/nsi/img/prof.png" alt="image indisponible" title="prof" />
On peur aussi habiller l'image avec les balises :
<figure>
: définit l’encapsulation des images.
<figcaption>
: définit la légende d’une image introduite par la balise figure.
<figure>
<img src="http://mathartung.xyz/nsi/img/prof.png" alt="image indisponible" title="prof" />
<figcaption>mon prof</figcaption>
</figure>
On peut aussi créer ces propres images avec
<canvas>
(non abordé dans ce cours, car nécessite l’utilisation de script JavaScript).
Format privilégié :
- PNG (Portable Network Graphics),
- JPG (Joint Photographic Expert Group)
- le GIF.
Un tableau est composé de ligne et de colonnes qui forment les cellules. Il commence par le balise :
<table>
: déclaration du tableau.
Exemples d'option (attributs) :
On utilise les balises suivantes :
<caption>
: permet de donner un titre au tableau ( à placer juste après la balise <table>)
<tr>
: permet de définir une ligne du tableau.
<th>
: permet de définir une cellule d’entête du tableau.
<td>
: permet de définir une cellule du tableau (contenu dans les lignes).
Une cellule peut contenir du texte, des images, des liens ou encore un tableau. On peut aussi y ajouter une couleur d'arrière-plan (bgcolor).
On a la possibilité de fusionner des cellules : horizontalement : colspan=''X''. verticalement : rowspan=''X''. X représente le nombre de cellules que l'on souhaite fusionner.
Autres attributs :
Structurer le tableau :
<thead>
: zone d’entête du tableau
<tfoot>
: zone de pied de page du tableau
<tbody>
: zone pour le corps du tableau
Voici le code d'un tableau :
<table>
<caption>inventeurs du html</caption>
<thead>
<tr>
<th>Noms</th>
<th>Prénoms</th>
</tr>
</thead>
<tbody>
<tr>
<td>Berners</td>
<td>Tim</td>
</tr>
<tr>
<td>Connolly</td>
<td>Dan</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Smith</td>
<td>Michael</td>
</tr>
</tfoot>
</table>
On peut insérer des sons (musique, commentaire audio, etc.) ou des vidéos dans une page web.
<audio>
: permet la gestion du son.
Voici le code pour insérer un son :
<audio src=’’chemin’’></audio>
Exemples de paramètres :
S’il y a plusieurs propositions de source :
<audio controls>
<source src="son.mp3"></source>
<source src="son.ogg"></source>
</audio>
<video>
: permet de gérer les vidéos.
Voici le code pour insérer une vidéo :
<video src=’’chemin’’></video>
Exemples de paramètres :
S’il y a plusieurs propositions de source :
<video controls width="500">
<source src="video.mp4" />
<source src="sintel.ogv" />
</video>