HTML Academy · Leçon

`header`, `nav`, `main` et `footer`

Structurez les principaux repères d’une page avec des balises sémantiques.

Leçon 1 sur 413 étapes

`header`, `nav`, `main` et `footer` est une leçon HTML Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage HTML Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours HTML Academy comprend 4 leçons au total.

Éléments repères de HTML5

HTML5 a introduit des éléments repères qui définissent les régions d’une page :

  • <header> — contenu introductif ou navigation
  • <nav> — liens de navigation
  • <main> — contenu principal propre à cette page
  • <footer> — informations de pied de page

Ils remplacent les <div> génériques par une structure porteuse de sens.

L’élément header

L’élément <header> contient le contenu introductif :

<header>
  <a href="/" class="logo">
    <img src="logo.svg" alt="Company name">
  </a>
  <nav>...</nav>
  <button>Sign In</button>
</header>
<!-- header can appear multiple times: page header, article header -->
<!-- But only one page-level header per page is recommended -->

L’élément nav

L’élément <nav> regroupe les liens de navigation :

<nav aria-label="Main navigation">
  <ul>
    <li><a href="/">Home</a></li>
    <li><a href="/products">Products</a></li>
    <li><a href="/about">About</a></li>
    <li><a href="/contact">Contact</a></li>
  </ul>
</nav>
<!-- Use aria-label to distinguish multiple navs -->
<!-- Not every group of links is a nav — only major navigation -->

Plusieurs éléments nav

Une page peut contenir plusieurs éléments <nav> : identifiez chacun d’eux :

<nav aria-label="Main navigation">...</nav>
<nav aria-label="Breadcrumb">...</nav>
<nav aria-label="Footer links">...</nav>
<!-- aria-label tells screen reader users what each nav is for -->
<!-- Screen readers list landmarks — unique labels help navigation -->

L’élément main

L’élément <main> identifie le contenu principal propre à cette page :

<main id="main-content">
  <h1>HTML5 Landmark Elements</h1>
  <p>Learn about semantic page structure...</p>
</main>
<!-- Rules:
  - Only ONE main element per page
  - Should not be a descendant of header, footer, aside, nav
  - id="main-content" enables skip links -->
<!-- Assistive tech users jump directly to main -->

L’élément footer

L’élément <footer> regroupe les informations de pied de page :

<footer>
  <p>&copy; 2025 CoddyKit. All rights reserved.</p>
  <nav aria-label="Footer navigation">
    <a href="/privacy">Privacy Policy</a>
    <a href="/terms">Terms of Service</a>
  </nav>
</footer>
<!-- footer can appear multiple times: page footer, article footer -->
<!-- Page footer typically has copyright, links, contact -->

Squelette de page

Structure sémantique complète d’une page :

<body>
  <header>
    <a href="/"><img src="logo.svg" alt="Site name"></a>
    <nav aria-label="Main">...</nav>
  </header>

  <main id="main-content">
    <h1>Page Title</h1>
    <p>Primary content here.</p>
  </main>

  <aside>Related content</aside>

  <footer>
    <p>&copy; 2025 Company</p>
  </footer>
</body>

Lien pour ignorer la navigation

Ajoutez un lien permettant aux utilisateurs du clavier d’ignorer la navigation :

<a href="#main-content" class="skip-link">Skip to main content</a>

<header>... navigation ...</header>

<main id="main-content" tabindex="-1">
  <h1>Page Heading</h1>
</main>

/* CSS: */
.skip-link {
  position: absolute; top: -100%;
  background: #0070f3; color: white; padding: 0.5rem;
}
.skip-link:focus { top: 0; }

Rôles des éléments repères

Les éléments repères de HTML5 correspondent aux rôles repères d’ARIA :

  • <header> → role="banner" (au niveau de la page uniquement)
  • <nav> → role="navigation"
  • <main> → role="main"
  • <footer> → role="contentinfo" (au niveau de la page uniquement)
  • <aside> → role="complementary"

header et footer dans les sections

Les éléments header et footer peuvent apparaître à l’intérieur de <article> et de <section> :

<article>
  <header>
    <h2>Article Title</h2>
    <p>By Jane Smith | March 2024</p>
  </header>
  <p>Article content...</p>
  <footer>
    <p>Tags: HTML, CSS</p>
  </footer>
</article>
<!-- In this context, header/footer are NOT banner/contentinfo roles -->
<!-- They are generic sections within the article -->

Erreurs courantes

Évitez ces erreurs sémantiques concernant les éléments repères :

  • Utiliser <nav> pour chaque groupe de liens
  • Placer plusieurs éléments <main> sur une même page
  • Placer <main> à l’intérieur de <header> ou de <nav>
  • Utiliser <footer> pour du contenu qui n’est pas un pied de page

Vérification rapide

Combien d’éléments main une page doit-elle contenir ?

Récapitulatif : header, nav, main et footer

Points essentiels des éléments repères :

  • <header> — contenu introductif ; peut être répété dans chaque section
  • <nav> — navigation principale ; utilisez aria-label s’il y en a plusieurs
  • <main> — contenu principal unique ; exactement un par page
  • <footer> — contenu de pied de page ; peut être répété dans chaque section
  • Ajoutez un lien d’accès direct ciblant id="main-content"
Gratuit pour commencer

Apprends HTML avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
40
Leçons
159

Questions Fréquemment Posées

La leçon « `header`, `nav`, `main` et `footer` » est-elle gratuite ?

Oui — le texte complet de « `header`, `nav`, `main` et `footer` » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours HTML Academy, passe à CoddyKit PRO. Le cours HTML Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « `header`, `nav`, `main` et `footer` » ?

Structurez les principaux repères d’une page avec des balises sémantiques. Tu pratiques HTML Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer HTML Academy ?

Aucune expérience préalable n'est requise. HTML Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « `header`, `nav`, `main` et `footer` » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon HTML Academy ?

Oui. Chaque leçon HTML Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. `header`, `nav`, `main` et `footer`
  2. L’élément `article` : contenu autonome
  3. L’élément `section` ou `div`
  4. `time`, `address` et `mark`
← Retour à HTML Academy