Mémo des essentiels de HTML

Guide pratique avec exemples visuels et référence de 80+ balises

Le HTML (HyperText Markup Language) est le langage fondamental du Web. Il permet de structurer le contenu de vos pages. Ce mémo est conçu pour être une référence rapide et visuelle pour les développeurs de tous niveaux.

01

Structure de base

Squelette HTML5

Tout commence ici. Une page HTML bien structurée est la base d'un site robuste. Comprendre le DOCTYPE, la balise html, head et body est essentiel pour garantir que votre page soit correctement interprétée par les navigateurs.

index.html
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Titre</title>
</head>
<body>
    <!-- Contenu -->
</body>
</html>

Éléments racine

02

Métadonnées

Balises <head>

Le contenu invisible est souvent le plus important pour les moteurs de recherche et les réseaux sociaux. Les balises meta définissent l'identité de votre page, son encodage et son comportement sur mobile.

head
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="index, follow">
<link rel="icon" href="favicon.ico">
<link rel="canonical" href="https://url-officielle.com">
🔍 Zoom sur : Viewport (Mobile)

<meta name="viewport" ...> est crucial pour le Responsive Design.

  • width=device-width : La largeur de la page s'adapte à la largeur de l'écran de l'appareil.
  • initial-scale=1.0 : Le niveau de zoom initial est à 100%.

⛔ Ne bloquez jamais le zoom utilisateur avec user-scalable=no pour des raisons d'accessibilité.

🤖 Zoom sur : Robots (SEO)

Contrôle comment Google/Bing indexent votre page.

  • index : Autorise l'indexation de la page (apparait dans les résultats).
  • follow : Autorise les robots à suivre les liens présents sur la page.

Contraires : noindex (page privée), nofollow (ne pas transmettre de "jus" SEO).

⭐ Zoom sur : Favicon

La petite icône dans l'onglet du navigateur.

<link rel="icon" type="image/svg+xml" href="logo.svg">

Format recommandé aujourd'hui : SVG (plus léger, redimensionnable) ou PNG. Le format .ico reste utilisé pour la rétro-compatibilité.

🔗 Zoom sur : Canonical URL

Essentiel pour éviter le Duplicate Content (pénalisant pour le SEO).

Si votre site est accessible via http://site.com, https://site.com et site.com/index.html, cette balise indique aux moteurs quelle est la SEULE version officielle à référencer.

💡 Utilisez defer ou async pour les scripts afin de ne pas bloquer le rendu.
03

Texte & Formatage

Titres, paragraphes, mise en forme

Le web est avant tout textuel. HTML offre une riche palette de balises pour hiérarchiser (titres), formater (gras, italique) et donner du sens (citations, code) à vos écrits.

Titres h1 à h6

Rendu

Titre h1 - Principal

Titre h2 - Section

Titre h3 - Sous-section

Titre h4

Titre h5
Titre h6

Formatage de texte

Rendu

strong - texte important (gras)

b - gras sans importance sémantique

em - emphase (italique)

i - italique sans emphase

u - souligné

s - texte barré (obsolète)

del - supprimé / ins - inséré

mark - surligné

small - petit texte

H2O - subscript / X2 - superscript

code - code inline

Ctrl + C - touche clavier

Sortie programme - sample output

x = 5 - variable

Citation courte inline

HTML - abréviation

Titre d'œuvre - citation

Terme - définition

Produit #123

Contact : email@site.com
Code
<strong>Important</strong>  <b>Gras</b>
<em>Emphase</em>  <i>Italique</i>
<u>Souligné</u>  <s>Barré</s>
<del>Supprimé</del>  <ins>Inséré</ins>
<mark>Surligné</mark>  <small>Petit</small>
<sub>Indice</sub>  <sup>Exposant</sup>
<code>Code</code>  <kbd>Touche</kbd>
<abbr title="...">ABR</abbr>
<time datetime="2024-01-15">15 jan</time>

Blocs de texte

Blockquote
"Une citation longue avec la balise blockquote."
— Auteur
HTML
<blockquote cite="source.html">
    "Une citation longue..."
    <footer>— Auteur</footer>
</blockquote>
Pre (préformaté)
Texte
    préformaté
        avec espaces conservés
HTML
<pre>
Texte
    préformaté
        avec espaces conservés
</pre>
WBR (Césure optionnelle)

Sans <wbr> :

MotTresLongSansCesureQuiDeborde

Avec <wbr> :

MotTresLongAvecCesureOptionnellePourEviterLeDebordement
HTML
MotTresLong<wbr>QuiPeutEtreCoupe

Séparateurs

04

Liens & Navigation

Balise <a>

L'hyperlien est l'essence même du web. Il permet de naviguer de page en page, de télécharger des fichiers ou d'envoyer des emails. La balise annotée <a> est votre outil de navigation principal.

Liens
<!-- Externe -->
<a href="https://google.com">Google</a>

<!-- Nouvel onglet (sécurisé) -->
<a href="url" target="_blank" rel="noopener noreferrer">Lien</a>

<!-- Interne -->
<a href="/page.html">Page</a>
<a href="./dossier/page.html">Relatif</a>

<!-- Ancre -->
<a href="#section">Vers section</a>
<section id="section">Cible</section>

<!-- Email / Téléphone -->
<a href="mailto:contact@site.com">Email</a>
<a href="tel:+33123456789">Appeler</a>

<!-- Téléchargement -->
<a href="doc.pdf" download>Télécharger</a>
<a href="doc.pdf" download="nouveau-nom.pdf">Télécharger</a>
05

Images & Médias

Multimédia HTML5

Un site moderne n'est pas que du texte. Images, vidéos et audio enrichissent l'expérience utilisateur. Apprenez à intégrer ces médias tout en optimisant les performances.

Images
<!-- Image simple -->
<img src="photo.jpg" alt="Description obligatoire">

<!-- Dimensions + lazy loading -->
<img src="img.jpg" alt="..." width="400" height="300" loading="lazy">

<!-- Figure + légende -->
<figure>
    <img src="img.jpg" alt="...">
    <figcaption>Légende</figcaption>
</figure>

<!-- Image responsive -->
<picture>
    <source media="(min-width:800px)" srcset="large.jpg">
    <source media="(min-width:400px)" srcset="medium.jpg">
    <img src="small.jpg" alt="...">
</picture>

<!-- Image cliquable -->
<a href="page.html"><img src="btn.png" alt="Bouton"></a>
📊 Comprendre src vs srcset

src : L'image par défaut, chargée par tous les navigateurs.

srcset : Liste d'images avec leur largeur réelle (ex: 400w). Le navigateur choisira automatiquement la plus adaptée à la résolution de l'écran et à la bande passante.

sizes : Indique au navigateur la taille que l'image occupera sur l'écran (ex: (max-width: 600px) 100vw, 50vw), avant même d'avoir chargé le CSS/Layout.

Audio & Vidéo
<!-- Vidéo -->
<video controls width="640" poster="thumb.jpg">
    <source src="video.mp4" type="video/mp4">
    <source src="video.webm" type="video/webm">
    <track src="sous-titres.vtt" kind="subtitles" srclang="fr">
</video>

<!-- Audio -->
<audio controls loop muted>
    <source src="audio.mp3" type="audio/mpeg">
</audio>

<!-- Iframe (YouTube, maps...) -->
<iframe src="https://youtube.com/embed/ID" allowfullscreen loading="lazy"></iframe>

<!-- Canvas / SVG -->
<canvas id="c" width="300" height="200"></canvas>
<svg width="100" height="100">...</svg>
Galerie Multimédia Interactive

Image avec figcaption

Paysage Cyberpunk
📸 Paysage Cyberpunk (Unsplash)

Lecteur Audio HTML5

Intégration Vidéo (Iframe)

🎥 Vidéo : Attributs & Accessibilité
  • poster : Image affichée avant que la lecture ne commence (comme une miniature YouTube).
  • controls : Affiche les boutons lecture/pause/volume du navigateur.
  • <track> : Indispensable pour l'accessibilité. Le fichier .vtt contient les sous-titres temporels.
  • Multi-source : Mettre plusieurs <source> permet au navigateur de choisir le format qu'il supporte (WebM est souvent plus léger que MP4).
🖼️ Canvas vs SVG

SVG (Scalable Vector Graphics) :

  • Vectoriel (ne pixelise pas au zoom).
  • Fait partie du DOM (chaque forme est une balise <rect>, <path>...).
  • Idéal pour : Logos, Icônes, Graphiques simples.

Canvas :

  • Bitmap (matrice de pixels).
  • Dessiné via JavaScript (getContext('2d')).
  • Idéal pour : Jeux vidéo, visualisations de données complexes (milliers de points), manipulation d'images (filtres).
06

Listes & Tableaux

Organisation des données

Pour organiser des données structurées, rien de tel que les listes et les tableaux. Utilisés à bon escient, ils rendent l'information complexe lisible et accessible.

Listes

Liste non ordonnée (ul)
  • Élément 1
  • Élément 2
  • Élément 3
Liste ordonnée (ol)
  1. Premier
  2. Deuxième
  3. Troisième
Liste de définitions (dl)
HTML
HyperText Markup Language
CSS
Cascading Style Sheets
HTML Listes
<!-- Liste à puces (Unordered) -->
<ul>
    <li>Item A</li>
    <li>Item B</li>
</ul>

<!-- Liste numérotée (Ordered) -->
<ol>
    <li>Premier</li>
    <li>Second</li>
</ol>

<!-- Définitions -->
<dl>
    <dt>Terme</dt>
    <dd>Définition du terme...</dd>
</dl>

Tableaux

Tableau complet
Liste des utilisateurs
Nom Email Rôle
Alice alice@mail.com Admin
Bob bob@mail.com User
Charlie charlie@mail.com User
3 utilisateurs
Table
<table>
    <caption>Titre du tableau</caption>
    <colgroup><col span="2"><col></colgroup>
    <thead>
        <tr><th>Col 1</th><th>Col 2</th></tr>
    </thead>
    <tbody>
        <tr><td>A</td><td>B</td></tr>
        <tr><td colspan="2">Fusionné</td></tr>
        <tr><td rowspan="2">2 lignes</td><td>X</td></tr>
    </tbody>
    <tfoot><tr><td colspan="2">Pied</td></tr></tfoot>
</table>
📐 Colgroup & Caption

<caption> : C'est le titre sémantique du tableau. Il est lu par les lecteurs d'écran comme faisant partie intégrante du tableau.

<colgroup> : Permet d'appliquer des styles à des colonnes entières sans mettre de class sur chaque <td>. Très utile pour fixer des largeurs ou couleurs de fond.

07

Formulaires

Inputs et validation

Le point de contact avec vos utilisateurs. Les formulaires permettent de recueillir des données, des inscriptions aux paiements. La variété des types d'input HTML5 facilite grandement la validation.

Tous les types d'inputs
← champ caché
Checkbox
Radio
Résultat calculé
Structure Formulaire
<form action="/api/login" method="POST">
    <label for="email">Votre Email</label>
    <input type="email" id="email" name="email" required>

    <button type="submit">Envoyer</button>
</form>
⚙️ Le cycle de vie d'un Formulaire (HTML / CSS / JS / PHP)

Un formulaire implique plusieurs technologies :

  • HTML : Structure les champs et assure la validation de base (required, type="email"). Le navigateur bloque l'envoi si invalide.
  • CSS : Stylise les états grâce aux pseudo-classes : :valid, :invalid, :focus, :checked.
  • JavaScript (Front-end) : Peut intercepter l'envoi (event.preventDefault()) pour envoyer les données en AJAX (sans recharger la page) ou faire des validations complexes.
  • PHP / Serveur (Back-end) : Reçoit les données via $_POST ou $_GET (défini par l'attribut method). ⚠️ Le serveur doit TOUJOURS revérifier les données, car le HTML/JS peut être contourné.

Attributs de validation

Validation
<input required>                    <!-- Obligatoire -->
<input minlength="3" maxlength="20">  <!-- Longueur -->
<input min="0" max="100" step="5">     <!-- Nombre -->
<input pattern="[A-Za-z]{3}">       <!-- Regex -->
<input placeholder="Indice">        <!-- Placeholder -->
<input readonly>                    <!-- Lecture seule -->
<input disabled>                    <!-- Désactivé -->
<input autofocus>                   <!-- Focus auto -->
<input autocomplete="off">          <!-- Pas d'auto-complétion -->
07b

Cas Pratique : Bureau des Quêtes

Formulaire thématique complet (Heroic Fantasy)

Ici, nous appliquons tout ce que nous avons appris. Ce formulaire de "Rapport de Fin de Quête" exploite les attributs sémantiques et de validation pour une expérience utilisateur (UX) optimale et une transmission de données propre.

📜 Rapport de Fin de Quête

Bureau de l'Aventurier - Royaume de HTMLia


🆔 Identité du Brave
⚔️ Voie de l'Aventure

Quelle est votre spécialité majeure ?

🎒 Équipement de Campagne

Cochez l'équipement ramené intact :

🐉 Détails de la Quête
Promenade Enfer

Exemple de code source complet (Heroic Fantasy)

Voici le code source de la démo ci-dessus, annoté pour comprendre chaque paramètre et option.

Code source commenté - quest-form.html
<!-- 
  FORM : Élément racine.
  - action : l'URL où les données seront envoyées (script serveur).
  - method : POST (recommandé pour la sécurité et l'envoi de données).
-->
<form action="/api/quests" method="POST">

  <!-- fieldset regroupe thématiquement les champs -->
  <fieldset>
    <!-- legend donne un titre au groupe -->
    <legend>Identité de l'aventurier</legend>
    
    <!-- Le 'for' du label DOIT être identique à l'ID de l'input -->
    <label for="nom">Nom (Requis) :</label>
    <input type="text" 
           id="nom" 
           name="hero_name" 
           required 
           placeholder="Ex: Godefroy">

    <!-- type="number" : pour les statistiques chiffrées -->
    <label for="lvl">Niveau (1-99) :</label>
    <input type="number" id="lvl" name="level" min="1" max="99" value="1">
  </fieldset>

  <!-- Boutons Radio : l'utilisateur choisit UNE seule option parmi N.
       Ils DOIVENT porter le même 'name' pour fonctionner en groupe. -->
  <fieldset>
    <legend>Choix de la classe (Radio)</legend>
    <input type="radio" id="warrior" name="class" value="warrior" checked>
    <label for="warrior">Guerrier</label>
    
    <input type="radio" id="mage" name="class" value="mage">
    <label for="mage">Mage</label>
  </fieldset>

  <!-- Checkbox : choix multiples possibles. -->
  <fieldset>
    <legend>Équipement (Checkbox - choix multiples)</legend>
    <input type="checkbox" id="sword" name="gear" value="épée" checked>
    <label for="sword">Épée magique</label>
  </fieldset>

  <!-- select/option : menu déroulant classique -->
  <label for="mission">Mission :</label>
  <select id="mission" name="quest">
    <option value="slayer">Tuer le Dragon</option>
    <option value="rescuer" selected>Sauver la Princesse</option>
  </select>

  <!-- range : curseur de sélection -->
  <label for="peril">Difficulté (1-10) :</label>
  <input type="range" id="peril" name="diff" min="1" max="10" step="1">

  <!-- textarea : pour les textes longs (multi-lignes) -->
  <label for="story">Récit :</label>
  <textarea id="story" name="story" rows="5"></textarea>

  <!-- submit : bouton déclenchant l'envoi -->
  <button type="submit">Sceller le Parchemin</button>

</form>
08

HTML5 Sémantique

Structure moderne

Le HTML5 a introduit des balises porteuses de sens (header, article, footer) qui remplacent les div génériques. Elles aident les lecteurs d'écran et les robots d'indexation à comprendre la structure logique de votre contenu.

Structure page
<body>
    <header>
        <nav>Navigation</nav>
    </header>
    
    <main>
        <article>
            <header>En-tête article</header>
            <section>Section 1</section>
            <section>Section 2</section>
            <footer>Pied article</footer>
        </article>
        <aside>Sidebar</aside>
    </main>
    
    <footer>Pied de page</footer>
</body>
🤔 Div vs Section vs Article
  • <div> : Conteneur générique sans sens sémantique. À utiliser uniquement pour le styling (CSS layout).
  • <section> : Un regroupement thématique de contenu, généralement avec un titre.
  • <article> : Un contenu autonome et indépendant (ex: un post de blog, un widget météo, un commentaire) qui pourrait être redistribué ailleurs seul.

Éléments interactifs

details / summary
Cliquez pour voir plus

Contenu caché révélé au clic. Très utile pour les FAQ!

Ouvert par défaut

Avec l'attribut open

dialog

Modal Dialog

Contenu de la fenêtre modale.

Code Interactif
<!-- Accordéon natif -->
<details>
    <summary>Titre visible</summary>
    Contenu caché...
</details>

<!-- Fenêtre modale native -->
<dialog id="modal">
    <p>Bonjour</p>
    <form method="dialog"> <!-- Ferme sans JS -->
        <button>Fermer</button>
    </form>
</dialog>
<script>
    modal.showModal(); // Ouvre avec backdrop
</script>
09

Accessibilité (A11y)

Rendre le web utilisable par tous

L'accessibilité n'est pas une option, c'est un devoir. Un bon HTML est la première étape pour rendre votre site utilisable par les personnes en situation de handicap.

📖 Les 3 règles d'or

1. Contraste : Le texte et le fond doivent avoir un contraste suffisant (ratio 4.5:1).

2. Structure : Utiliser les balises sémantiques (h1-h6, nav, button) pour que les lecteurs d'écran comprennent la page.

3. Clavier : Tout doit être accessible sans souris (Tabulation).

Bonnes pratiques
<!-- Alt pour images -->
<img src="cat.jpg" alt="Chat noir qui dort sur un canapé">

<!-- Label pour formulaires -->
<label for="email">Email</label>
<input id="email" type="email">

<!-- ARIA (si HTML ne suffit pas) -->
<div role="alert" aria-live="polite">Erreur de connexion</div>
👁️ ARIA vs HTML Natif

Règle d'or : N'utilisez ARIA que si le HTML ne suffit pas.

❌ Mauvais : <div role="button" onclick="...">Clic</div> (nécessite JS pour clavier, focus, etc.)

✅ Bon : <button>Clic</button> (Accessible nativement)

ARIA est utile pour des widgets complexes (onglets, modales, sliders) ou pour donner des labels invisibles (aria-label).

09b

Multimédia & Responsive

Images adaptatives (Art Direction)

Pour la performance et le design, on ne sert pas la même image à un mobile et à un écran 4K. L'élément <picture> permet de changer complètement l'image (recadrage, zoom) selon la taille de l'écran.

📸 Démo : Art Direction

Bougez le slider pour simuler la largeur de l'écran. Observez comment l'image change pour garder le sujet visible.

📱 🖥️
Largeur simulée : 1000px (Desktop)
Desktop View
Source : responsive-desktop.png
Code HTML (La vraie syntaxe)
<picture>
    <!-- Mobile : Image carrée/verticale pour le détail -->
    <source media="(max-width: 600px)" srcset="img-mobile.jpg">

    <!-- Tablette : Image un peu plus large -->
            <source media="(max-width: 900px)" srcset="img-tablet.jpg">

    <!-- Défaut (Desktop) : Grande image large -->
    <img src="img-desktop.jpg" alt="Paysage Cyberpunk">
</picture>
10

SEO & Performance

Optimisation pour les moteurs

La structure de votre code impacte directement votre visibilité. Un code propre, rapide et sémantique est favorisé par Google. Optimisez vos balises pour le référencement.

Open Graph (Social)
<meta property="og:title" content="Mon Article">
<meta property="og:image" content="https://site.com/thumb.jpg">
<meta property="og:description" content="Résumé...">
Performance
<!-- Lazy loading -->
<img loading="lazy" ...>
<iframe loading="lazy" ...></iframe>

<!-- Preload (Police critique) -->
<link rel="preload" href="font.woff2" as="font">
🚀 3 Piliers de la Performance Web
  • Lazy Loading (loading="lazy") : Ne charge les images/iframes que quand l'utilisateur scrolle jusqu'à elles. Économise énormément de bande passante initiale.
  • Preload : Indique au navigateur de charger une ressource critique (police, image hero) immédiatement, avant même d'avoir fini d'analyser tout le HTML.
  • Minification : Réduire la taille des fichiers HTML/CSS/JS (supprimer espaces/commentaires) pour accélérer le transfert réseau.
📱 Open Graph & Social Cards

Sans Open Graph, le partage de votre lien sur Facebook/Twitter/LinkedIn sera moche (juste l'URL).

Avec les balises og:*, vous contrôlez l'image, le titre et la description qui apparaissent dans le "card" de prévisualisation.

  • og:image : L'image doit être < 1MB, ratio idéal 1.91:1 (ex: 1200x630px).
  • og:title : Doit être accrocheur (60 caractères max).
11

Référence Complète

80+ balises HTML5

Une vue d'ensemble compacte de tout l'arsenal HTML à votre disposition.

Structure

Document

<!DOCTYPE>Déclare la version de HTML utilisée (HTML5). Doit être la première ligne.<!DOCTYPE html> <html>La racine du document. L'attribut lang est recommandé.<html lang="fr"> <head>Contient les métadonnées invisibles (titre, scripts, styles).<head>...</head> <body>Contient tout le contenu visible de la page.<body><h1>Bonjour</h1></body>

Métadonnées

<title>Définit le titre affiché dans l'onglet du navigateur et les résultats Google.<title>Mon Site</title> <meta>Métadonnées diverses : encodage, viewport, description SEO...<meta charset="UTF-8"> <link>Lie une ressource externe (CSS, Favicon).<link rel="stylesheet" href="style.css"> <style>Définit des styles CSS internes au document.<style>body { color: red; }</style> <script>Intègre ou référence un script JavaScript.<script src="app.js"></script> <base>Définit l'URL de base pour tous les liens relatifs.<base href="https://site.com/"> <noscript>Affiché uniquement si JS est désactivé.<noscript>Activez JS !</noscript>

Sections

<header>En-tête d'une page ou d'une section.<header><h1>Logo</h1></header> <nav>Section de liens de navigation principale.<nav><a href="/">Accueil</a></nav> <main>Contenu principal unique de la page.<main>...</main> <article>Contenu autonome et indépendant (post, widget).<article><h2>Titre</h2>...</article> <section>Regroupement thématique de contenu, généralement avec un titre.<section><h2>Intro</h2>...</section> <aside>Contenu indirectement lié au principal (sidebar, pub).<aside>Pub...</aside> <footer>Pied de page ou de section.<footer>© 2024</footer> <address>Informations de contact de l'auteur.<address>contact@site.com</address> <hgroup>Groupe un titre et un sous-titre.<hgroup><h1>Titre</h1><p>Sub</p></hgroup>

Texte

Titres

<h1>Titre principal (le plus important). 1 par page max.<h1>Titre Page</h1> <h2>Titre de section.<h2>Chapitre 1</h2> <h3>...<h6>Sous-titres de h3 à h6 par ordre d'importance décroissante.<h3>Sous-section</h3>

Blocs

<p>Paragraphe de texte. Ajoute une marge par défaut.<p>Texte...</p> <div>Conteneur générique de bloc sans sens sémantique.<div class="box">...</div> <pre>Texte préformaté. Conserve espaces et sauts de ligne.<pre> Code </pre> <blockquote>Citation longue (bloc).<blockquote>"..."</blockquote> <hr>Rupture thématique (ligne horizontale).<hr>

Inline sémantique

<strong>Importance forte (généralement gras).<strong>Attention</strong> <em>Emphase (généralement italique).<em>Important</em> <mark>Texte surligné (mise en évidence).<mark>Trouvé</mark> <cite>Titre d'une œuvre (livre, film).<cite>Titanic</cite> <q>Citation courte inline. Ajoute des guillemets.<q>Bonjour</q> <dfn>Terme en cours de définition.<dfn>HTML</dfn> est... <abbr>Abréviation ou acronyme.<abbr title="Super">Sup.</abbr> <time>Date ou heure machine-readable.<time datetime="2024-01-01">Jan 1</time>

Inline style

<b>Gras sans importance sémantique.<b>Mot</b> <i>Italique sans emphase (terme technique, pensée).<i>Latin</i> <u>Souligné (non-lien), ex: faute d'orthographe.<u>Faute</u> <s>Barré (info plus valide).<s>10€</s> 5€ <small>Petits caractères (copyright, mentions légales).<small>© 2024</small> <sub>Indice.H<sub>2</sub>O <sup>Exposant.1<sup>er</sup>

Code

<code>Fragment de code informatique.<code>print()</code> <kbd>Entrée utilisateur (clavier).<kbd>Ctrl</kbd> + <kbd>C</kbd> <samp>Sortie d'un programme.<samp>Error 404</samp> <var>Variable mathématique ou informatique.<var>x</var> = 2

Coupures

<br>Saut de ligne contraint.Ligne 1<br>Ligne 2 <wbr>Saut de ligne optionnel (Word Break Opportunity).Long<wbr>Mot <span>Conteneur générique inline sans sens sémantique.<span class="red">Mot</span>

Liens & Médias

Liens

<a>Lien hypertexte vers une autre page, un fichier, ou une ancre.<a href="page.html">Lien</a> <nav>Section contenant les liens de navigation principaux.<nav>...</nav>

Images

<img>Image intégrée. Nécessite alt pour l'accessibilité.<img src="img.jpg" alt="..."> <figure>Contenu autonome avec légende optionnelle (image, code, diagramme).<figure><img...></figure> <figcaption>Légende associée à un parent <figure>.<figcaption>Img 1</figcaption> <picture>Conteneur pour images responsives (multi-sources).<picture>...</picture> <source>Définit une ressource pour <picture>, <audio> ou <video>.<source srcset="img.webp"> <map>Définit une carte d'image (zones cliquables).<map name="m">...</map> <area>Zone cliquable dans une <map>.<area coords="0,0,10,10">

Médias

<video>Lecteur vidéo intégré.<video src="v.mp4" controls> <audio>Lecteur audio intégré.<audio src="a.mp3" controls> <track>Piste texte (sous-titres) pour média.<track src="s.vtt" kind="subtitles"> <iframe>Cadre en ligne (affiche une autre page web).<iframe src="https://..."> <embed>Conteneur pour application externe ou plug-in.<embed src="f.swf"> <object>Conteneur générique pour ressource externe.<object data="doc.pdf"> <param>Paramètre pour <object>.<param name="autoplay" value="true">

Graphiques

<canvas>Zone de dessin bitmap scriptable (JS).<canvas id="game"> <svg>Graphique vectoriel (Scalable Vector Graphics).<svg><circle...></svg>

Listes & Tableaux

Listes

<ul>Liste non ordonnée (puces rondes).<ul><li>Item</li></ul> <ol>Liste ordonnée (1, 2, 3...).<ol><li>Item</li></ol> <li>Élément de liste (List Item).<li>Pain</li> <dl>Liste de description (clé-valeur).<dl><dt>...</dt></dl> <dt>Terme à définir dans une liste de description.<dt>HTML</dt> <dd>Définition/Description du terme précédent.<dd>Langage...</dd> <menu>Liste de commandes (similaire à ul sémantiquement).<menu><li>Copier</li></menu>

Tableaux

<table>Conteneur de tableau.<table>...</table> <caption>Titre du tableau.<caption>Prix</caption> <thead>Groupe d'en-tête (lignes de titres).<thead><tr>...</tr></thead> <tbody>Corps principal du tableau (données).<tbody>...</tbody> <tfoot>Pied du tableau (totaux).<tfoot>...</tfoot> <tr>Ligne de tableau (Table Row).<tr><td>A</td></tr> <th>Cellule d'en-tête (gras, centré).<th>Nom</th> <td>Cellule de données standard.<td>Bob</td> <colgroup>Groupe de colonnes pour styling.<colgroup><col>... <col>Définit les attributs d'une colonne.<col span="2" class="red">

Formulaires

Structure

<form>Conteneur de formulaire pour l'envoi de données.<form action="/login"> <fieldset>Groupe d'éléments de formulaire liés.<fieldset>...</fieldset> <legend>Titre d'un <fieldset>.<legend>Identité</legend> <label>Libellé associé à un champ de formulaire.<label for="email">Email</label>

Inputs

<input>Champ de saisie interactif (nombreux types).<input type="password"> <textarea>Zone de texte multiligne.<textarea rows="5"></textarea> <select>Menu déroulant d'options.<select><option>A</option></select> <option>Option dans un menu select.<option value="1">Un</option> <optgroup>Groupe d'options dans un select.<optgroup label="Pays"> <datalist>Liste de suggestions pour un input.<datalist id="villes">

Boutons

<button>Bouton cliquable (submit, reset, button).<button>Envoyer</button>

Résultats

<output>Résultat d'un calcul ou action utilisateur.<output name="total"> <progress>Progression d'une tâche (téléchargement).<progress value="50" max="100"> <meter>Mesure scalaire dans une gamme connue (disque utilisé).<meter value="0.8">

Interactif & Autres

Interactif

<details>Widget de divulgation (accordéon) affichant/masquant du contenu.<details><summary>Titre</summary>...</details> <summary>Légende/Titre visible pour un élément <details>.<summary>Plus d'infos</summary> <dialog>Boîte de dialogue ou fenêtre modale.<dialog><p>Bonjour</p></dialog>

Script

<script>Code exécutable (JavaScript).<script>console.log('Hi')</script> <noscript>Contenu alternatif si le script est désactivé.<noscript>Activez JS</noscript> <template>Contenu inerte clonable par JavaScript.<template><div>...</div></template> <slot>Emplacement (placeholder) dans un Shadow DOM.<slot name="icon"></slot>

Ruby (annotations)

<ruby>Annotation ruby (typo asiatique).<ruby>漢<rt>kan</rt></ruby> <rt>Texte de l'annotation ruby.<rt>kan</rt> <rp>Parenthèses pour navigateurs ne supportant pas ruby.<rp>(</rp>

Bidirectionnel

<bdi>Isolation bidirectionnelle de texte.<bdi>Username</bdi> <bdo>Override bidirectionnel (force la direction).<bdo dir="rtl">Texte</bdo>
💡 Total : 85+ balises HTML - Cette référence couvre toutes les balises HTML5 courantes et leur usage.

Testez vos connaissances