HTML (HyperText Markup Language) est le langage qui décrit le contenu et le sens d’une page web : ceci est un titre, ceci est un paragraphe, ceci est un lien. L’apparence (couleurs, mise en page) viendra plus tard avec CSS, et les interactions avec JavaScript.
Balises, éléments et attributs
Un élément HTML s’écrit généralement avec une balise ouvrante, un contenu et une balise fermante :
<!-- balise ouvrante, contenu, balise fermante -->
<p>Bonjour tout le monde</p>
<!-- un attribut précise l'élément : nom="valeur" -->
<a href="contact.html">Nous contacter</a>
Certains éléments sont vides : ils n’ont ni contenu ni balise fermante, par exemple <meta>, <img>, <br> ou <input>.
Les éléments s’imbriquent comme des poupées russes : on ferme toujours en premier ce qu’on a ouvert en dernier.
<p>Un mot <strong>important</strong> ici.</p> <!-- correct -->
<p>Un mot <strong>important</p></strong> <!-- incorrect -->
Le squelette minimal
Voici la base de toute page moderne :
<!DOCTYPE html> <!-- mode standard du navigateur -->
<html lang="fr"> <!-- langue principale de la page -->
<head>
<meta charset="UTF-8"> <!-- encodage : accents corrects -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mon premier site</title> <!-- texte de l'onglet et des moteurs de recherche -->
</head>
<body>
<h1>Bienvenue</h1>
<p>Ceci est ma première page.</p>
</body>
</html>
Ligne par ligne :
<!DOCTYPE html>n’est pas une balise mais une déclaration : elle indique au navigateur d’utiliser le mode standard.<html lang="fr">est la racine du document. L’attributlangaide les lecteurs d’écran à choisir la bonne prononciation et les moteurs de recherche à classer la page.<head>regroupe les métadonnées, invisibles dans la page : encodage, réglage d’affichage mobile (viewport), titre de l’onglet, plus tard les liens vers les feuilles CSS.<body>contient tout ce que l’utilisateur voit.
L’arbre du document
Le navigateur transforme ce texte en un arbre (le DOM) : html a deux enfants, head et body, qui ont eux-mêmes des enfants. Retenir cette image vous aidera beaucoup en CSS et en JavaScript.
Bonnes habitudes
- Indentez le code : chaque niveau d’imbrication est décalé de deux espaces.
- Écrivez les balises et attributs en minuscules et entourez les valeurs de guillemets.
- Ajoutez des commentaires avec
<!-- ... -->; ils ne s’affichent pas. - Enregistrez le fichier en UTF-8 avec l’extension
.html, puis ouvrez-le dans votre navigateur.
HTML est tolérant : une erreur ne fait pas planter la page, le navigateur devine. C’est pratique, mais cela cache les erreurs. Prenez l’habitude d’écrire un code propre dès le départ.
Exercices
Les solutions et les tests restent sur le serveur. Dans l'espace étudiant, ton code est exécuté et corrigé, et le tuteur donne des indices avant la solution.
Compléter le squelette
Complétez la page : ajoutez l’attribut
lang="fr"sur<html>, une balise<meta charset="UTF-8">et un<title>contenant Ma page.<!DOCTYPE html> <html> <head> <!-- ajoutez l'encodage et le titre --> </head> <body> <p>Bonjour</p> </body> </html>Une page complète
Écrivez une page complète depuis zéro : doctype,
<html lang="fr">,<head>avec charset UTF-8, meta viewport et titre Portfolio, puis un<body>contenant un<h1>« Bonjour, je suis Alex » et un paragraphe de présentation.<!-- écrivez toute la page ici -->Où va le titre de l'onglet ?
Dans quel élément doit-on placer la balise
<title>?- Dans <body>
- Dans <head>
- Juste après <!DOCTYPE html>, hors de <html>
Quiz de fin de leçon
À quoi sert ?
- À afficher le titre
- À activer le mode standard du navigateur
- À importer du CSS
Lequel de ces éléments est un élément vide (sans balise fermante) ?
- <p>
- <title>
- <meta>
Pourquoi ajouter lang=“fr” à ?
- Pour traduire automatiquement la page
- Pour aider lecteurs d'écran et moteurs de recherche à connaître la langue
- C'est obligatoire pour que la page s'affiche
La suite du cours
- Titres, paragraphes et listes15 min
- Liens et images15 min
- Structurer une page avec le HTML sémantique15 min
- Les tableaux de données15 min
- Les formulaires20 min