Module 1.2 · Microressource 1

La structure d'une page HTML

Théorie 20 min
Objectif pédagogique

Comprendre le squelette d'une page et les balises sémantiques.

Toutes les pages web reposent sur le même squelette, du blog personnel au site d'un grand journal. Le connaître, c'est pouvoir ouvrir n'importe quel fichier HTML et savoir immédiatement où l'on se trouve — et où ajouter son propre contenu.

1. Le squelette obligatoire

Quatre éléments encadrent toute page. Ils ne s'inventent pas : on les écrit toujours dans cet ordre, et tout le reste vient se loger à l'intérieur.

index.html — le squelette minimal
<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>Ma page</title>
</head>
<body>
  <!-- tout ce que le visiteur voit -->
</body>
</html>

<!DOCTYPE html> annonce au navigateur qu'il lit du HTML moderne. <html lang="fr"> enveloppe la page entière et déclare sa langue — un détail qui compte pour les moteurs de recherche et pour les lecteurs d'écran. Vient ensuite la séparation la plus importante du fichier : le head contient des informations sur la page (encodage des caractères, titre affiché dans l'onglet, feuille de style à charger) et n'affiche rien ; le body contient la page elle-même, tout ce qui apparaît à l'écran.

L'erreur classique Écrire son texte dans le <head> : la page reste désespérément blanche. Si rien ne s'affiche, la première chose à vérifier est toujours la même — le contenu est-il bien dans le <body> ?

2. Le plan du <body> : les balises sémantiques

À l'intérieur du body, on pourrait tout empiler dans des <div> anonymes. Les balises sémantiques font mieux : elles découpent la page en zones qui portent un nom. Voici le plan type d'une page :

<body> tout ce qui est visible
<header> bandeau haut : logo, titre du site
<nav> le menu de navigation
<main> le contenu principal, unique dans la page
<section> un ensemble thématique
<article>
<article>
<footer> bas de page : mentions, contact

Ce schéma se lit comme un emboîtement de boîtes : chaque balise en contient d'autres, et l'indentation du code reproduit exactement cette imbrication. C'est aussi la structure des pages de cette formation — ouvrez le code source de celle-ci, vous y retrouverez header, nav, main et footer.

3. Le rôle de chaque balise

BaliseCe qu'elle contientLe repère
<header>L'en-tête : titre du site, logo, souvent le menuSe répète sur toutes les pages
<nav>Un groupe de liens de navigationRéservé aux menus, pas à un lien isolé
<main>Le contenu propre à cette pageUne seule fois par page
<section>Un regroupement thématique, avec son titrePorte presque toujours un <h2>
<article>Un contenu autonome : fiche, billet, actualitéGarderait du sens sorti de la page
<footer>Le pied de page : mentions, contact, copyrightSe répète sur toutes les pages

Pourquoi s'embarrasser de ces noms alors qu'un <div> produirait le même effet à l'écran ? Parce que trois publics lisent votre code sans le voir : les moteurs de recherche, qui repèrent le contenu réel grâce au main ; les lecteurs d'écran, qui permettent à un visiteur aveugle de sauter directement au contenu ou au menu ; et vous-même, six mois plus tard, quand il faudra retrouver quelque chose dans le fichier.

Ce qu'il faut avoir compris
  • Toute page suit le même ordre : doctype, html, head, body.
  • Le head décrit la page, le body la contient : le texte visible va dans le body.
  • Les balises sémantiques nomment les zones au lieu de les empiler en div.
  • Un seul <main> par page ; header et footer se répètent d'une page à l'autre.
  • Un <article> est autonome, une <section> regroupe autour d'un thème.
Et maintenant

Le plan de la page est posé. La microressource suivante s'occupe de l'habillage : où ranger le CSS, et pourquoi jamais dans le HTML.

Microressource 2 — Séparer le CSS dans un fichier à part →