Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

TP1re année17 livrablesQuiz corrigé

HTML : ta première page web

Tous les sites du monde sont écrits dans la même langue de base : HTML. Aujourd'hui, tu écris ta première page — à la main, balise par balise — et tu la vois s'afficher dans le navigateur.

Par Josselyn C., prof de BTS SIO. Publié le , mis à jour le .

Objectif
comprendre HTML, écrire une page (titres, texte, listes, liens, images) et l'afficher
On manipule
un éditeur de texte (VS Code) + un navigateur, sur ton poste
Pré-requis
aucun. On part de « c'est quoi une page web ? »
Pour qui
SLAM et SISR, 1re année
Durée
environ 4 h

Compétences : C1.3 Développer la présence en ligne de l'organisation, C2.1 Concevoir et développer une solution applicative, C3.5 Assurer la cybersécurité d'une solution applicative

Rien à installer de spécial : un éditeur de texte et un navigateur suffisent.

Avant de commencer

Pourquoi commencer par HTML

Quand tu ouvres un site, ton navigateur reçoit un fichier HTML et l'affiche. C'est le squelette de toute page web : le texte, les titres, les images, les liens. Avant les jolis designs (CSS, prochaine séance) et l'interactivité (JavaScript), il y a toujours HTML. C'est la première brique du métier de développeur — et tu vas la poser toi-même.

Ce que tu sauras faire à la fin

ÉlémentTu sauras…
Structure d'une pageécrire le squelette HTML correct, propre et commenté
Titres & textestructurer du contenu (titres, paragraphes, mise en valeur)
Listescréer des listes à puces et numérotées
Liens, images & cheminsrelier des pages, afficher des images, gérer les dossiers
Tableaux & structureprésenter des données et organiser la page (header/main/footer)
Une vraie pageassembler une page de présentation complète

0. C'est quoi une page web ?

Une page web est un simple fichier texte portant l'extension .html. Ce fichier contient le contenu (textes, liens, images) entouré de balises qui disent au navigateur comment l'interpréter. Le navigateur lit le HTML et l'affiche joliment.

MotDéfinition
HTMLle langage qui décrit le contenu et la structure d'une page web (HyperText Markup Language)
Balise (tag)un mot entre chevrons < > qui marque un élément
Navigateurle logiciel qui lit le HTML et l'affiche (Firefox, Chrome, Edge…)
Éditeurle logiciel où l'on écrit le code (VS Code)

Flag A1

Checkpoint

Avec tes mots : quel est le rôle du fichier HTML, et quel est le rôle du navigateur ?
Rends : ta réponse en 2 phrases.

0 sur 17 dans cette étape

1. Ton premier fichier HTML

Étape 1 — Créer le fichier

  1. Ouvre VS Code.
  2. Menu Fichier → Ouvrir le dossier…, crée un dossier mon-site et ouvre-le.
  3. Dans VS Code, clique sur l'icône « Nouveau fichier » et nomme-le index.html.

Étape 2 — Écrire une première ligne

html
<h1>Bonjour le web !</h1>

Étape 3 — Voir le résultat (deux façons)

Enregistre d'abord avec Ctrl+S. Ensuite, tu as le choix :

MéthodeCommentQuand
Double-clicdouble-clique sur index.html dans l'explorateur de fichiers ; il s'ouvre dans le navigateursimple, suffisant pour aujourd'hui
Live Server (VS Code)installe l'extension « Live Server », puis clic droit sur le fichier → Open with Live Serverla page se rafraîchit toute seule à chaque Ctrl+S — très confortable

Flag B1

Production

Crée ton index.html avec un titre <h1> de ton choix et ouvre-le dans le navigateur.
Rends : ton code et le texte affiché.

0 sur 17 dans cette étape

2. La structure d'une page

Une ligne, c'est un début, mais une vraie page HTML a un squelette standard. Le voici, à recopier et comprendre.

html
<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Ma page</title>
  </head>
  <body>
    <h1>Bonjour le web !</h1>
  </body>
</html>

Tout vit dans <html>, qui se divise en deux : <head> (coulisses) et <body> (la scène visible).

Tout vit dans <html>, qui se divise en deux : <head> (coulisses) et <body> (la scène visible).

Flag B2

Production

Remplace ton fichier par le squelette complet ci-dessus, avec TON titre d'onglet (<title>).
Rends : ton code, et le texte que tu vois dans l'onglet du navigateur.

0 sur 17 dans cette étape

3. Les balises : la règle du jeu

Tout HTML fonctionne avec des balises. Comprendre leur logique, c'est comprendre tout le reste.

Une balise s'ouvre, contient quelque chose, et se ferme (avec un /). La plupart vont par paires.

Une balise s'ouvre, contient quelque chose, et se ferme (avec un /). La plupart vont par paires.

NotionExemple
Balise paire<p>texte</p>
Balise auto-fermante (sans contenu)<br> (saut de ligne), <img>
Attribut (info en plus)<a href="..."> — href est un attribut
Imbrication<p>un <strong>mot</strong> fort</p>

Flag A2

Checkpoint

Dans <a href="page.html">cliquez</a>, identifie : la balise ouvrante, l'attribut (et sa valeur), le contenu, la balise fermante.
Rends : les 4 éléments.

0 sur 17 dans cette étape

4. Du code lisible : indentation & commentaires

Un code qui marche, c'est bien. Un code lisible, c'est mieux : tu te reliras plus tard, et tes profs (et collègues) liront ton code. Deux outils pour ça : l'indentation et les commentaires.

L'indentation (décaler ce qui est « à l'intérieur »)

Quand une balise est à l'intérieur d'une autre, on la décale de 2 espaces vers la droite. Compare :

html
<body>
<header>
<h1>Titre</h1>
</header>
</body>

Sans indentation : difficile de voir qui contient quoi.

html
<body>
  <header>
    <h1>Titre</h1>
  </header>
</body>

Avec indentation : on voit que h1 est dans header, dans body.

Les commentaires (des notes invisibles)

html
<!-- Ceci est un commentaire : il n'apparaît pas dans la page -->
<h1>Bonjour</h1>

Flag B3

Production

Reprends ton squelette du chapitre 2. Ré-indente-le proprement (chaque enfant décalé de 2 espaces) et ajoute un commentaire au-dessus du <body> qui dit, par exemple, <!-- contenu visible de ma page -->.
Rends : ton code indenté avec son commentaire.

0 sur 17 dans cette étape

5. Les titres

HTML a 6 niveaux de titres, du plus grand (h1) au plus petit (h6). Ils structurent le contenu comme les titres d'un document.

html
<h1>Titre principal</h1>
<h2>Sous-titre</h2>
<h3>Sous-sous-titre</h3>

Flag B4

Production

Dans ton <body>, écris un h1 (le titre de ta page perso) et deux h2 (« À propos », « Mes passions »).
Rends : ton code.

0 sur 17 dans cette étape

6. Paragraphes & mise en valeur

Les paragraphes

html
<p>Je m'appelle Marc et je suis en BTS SIO.</p>
<p>J'aime le développement et le réseau.</p>

Mettre en valeur

html
<p>C'est <strong>important</strong> et <em>à noter</em>.<br>
Et ça, c'est à la ligne.</p>

Le cas de <span>

html
<p>Mon pseudo est <span>DevMarc</span> sur le forum.</p>

Les caractères spéciaux

Certains caractères sont « réservés » par HTML : le < et le > servent aux balises, le & sert justement à écrire ces caractères. Pour les afficher comme du texte normal, on utilise des codes appelés entités.

html
<p>En C#, on écrit if (age &lt; 18).</p>
<p>© 2026 — Tom &amp; Marc</p>

Flag B5

Production

Sous ton titre, écris 2 paragraphes qui te présentent, avec au moins un mot en <strong>, un en <em>, et un <span> autour de ton prénom.
Rends : ton code et une description de ce que tu vois.

0 sur 17 dans cette étape

7. Les listes

Liste à puces (non ordonnée)

html
<ul>
  <li>HTML</li>
  <li>CSS</li>
  <li>SQL</li>
</ul>

Liste numérotée (ordonnée)

html
<ol>
  <li>Allumer le PC</li>
  <li>Se connecter</li>
</ol>

Flag B6

Production

Ajoute à ta page une liste à puces de 3 compétences que tu veux acquérir, et une liste numérotée de 3 étapes de ta journée type.
Rends : ton code.

0 sur 17 dans cette étape

8. Les liens

Le lien (« hyperlien ») est ce qui fait le web : cliquer pour aller ailleurs.

html
<a href="https://example.fr">Le site de mon école</a>

Flag B7

Production

Ajoute à ta page un lien vers un site que tu aimes (externe), et un lien vers une future page contact.html (interne).
Rends : ton code et ce qui se passe au clic sur le lien externe.

0 sur 17 dans cette étape

9. Les images

Pour afficher une image, on utilise <img> — une balise auto-fermante (pas de contenu, donc pas de balise fermante).

html
<img src="photo.jpg" alt="Ma photo de profil">

Flag B8

Production

Mets une image dans ton dossier mon-site et affiche-la dans ta page avec un alt descriptif.
Rends : ton code et confirme que l'image s'affiche (sinon, quel était le souci ?).

0 sur 17 dans cette étape

10. Les chemins : où sont mes fichiers ?

Quand tu écris src="photo.jpg" ou href="contact.html", tu donnes un chemin : tu dis au navigateur où aller chercher le fichier, en partant de la page actuelle. Bien ranger ses fichiers, c'est la moitié du métier.

Organiser son dossier

Range tes images dans un sous-dossier images/. Ton dossier ressemble alors à ça :

mon-site/
├── index.html      <-- ta page d'accueil
├── contact.html    <-- une autre page
└── images/
    └── photo.jpg   <-- tes images

Les trois cas à connaître

Où est le fichier ?Ce que tu écris
Même dossier que la pagesrc="photo.jpg"
Dans un sous-dossier images/src="images/photo.jpg"
Dans le dossier parent (un niveau au-dessus)src="../photo.jpg"

Flag C1

Debug

Tu as rangé ta photo dans mon-site/images/ mais ton code dit encore <img src="photo.jpg"> : l'image ne s'affiche plus.
Corrige le chemin pour qu'elle réapparaisse.
Rends : la ligne <img> corrigée et une phrase expliquant l'erreur.

0 sur 17 dans cette étape

11. Structurer la page

Pour organiser le contenu, on le regroupe dans des conteneurs. Le plus simple est <div> ; les balises sémantiques disent en plus à quoi sert chaque zone.

html
<header>
  <h1>Mon portfolio</h1>
</header>
<main>
  <p>Le contenu principal de la page.</p>
</main>
<footer>
  <p>© 2026 - Marc</p>
</footer>

Le menu de navigation

Quand ton site a plusieurs pages, on regroupe les liens de navigation dans un <nav>, souvent placé dans le <header>.

html
<nav>
  <a href="index.html">Accueil</a>
  <a href="contact.html">Contact</a>
</nav>

Section et article — quand les utiliser ?

Sur une vraie page structurée, <section> et <article> remplacent les <div> quand le contenu a un sens propre.

html
<main>
  <section>
    <h2>À propos</h2>
    <p>Je m'appelle Marc, je suis en BTS SIO.</p>
  </section>

  <section>
    <h2>Mes projets</h2>
    <article>
      <h3>GSB Ordonnances</h3>
      <p>Application C# de gestion des ordonnances médicales.</p>
    </article>
    <article>
      <h3>Portfolio Web</h3>
      <p>Ce site que tu consultes en ce moment.</p>
    </article>
  </section>
</main>

Flag B9

Production

Réorganise ta page avec un <header> (ton titre), un <main> (tes paragraphes, listes, image) et un <footer> (ton nom + l'année).
Rends : ton code structuré.

0 sur 17 dans cette étape

12. Les tableaux

Un tableau présente des données en lignes et colonnes (un planning, une liste de logiciels…). Il s'assemble avec quatre balises.

html
<table>
  <tr>
    <th>Logiciel</th>
    <th>Usage</th>
  </tr>
  <tr>
    <td>VS Code</td>
    <td>Écrire du code</td>
  </tr>
  <tr>
    <td>Firefox</td>
    <td>Tester la page</td>
  </tr>
</table>

Flag B10

Production

Ajoute à ta page un tableau qui liste 3 logiciels que tu utilises et leur usage (1 ligne d'en-tête + 3 lignes de données).
Rends : ton code et une description de l'affichage.

0 sur 17 dans cette étape

13. Espionner le HTML d'un vrai site

Toutes les pages que tu visites sont du HTML, comme la tienne. Le navigateur a un outil pour le voir en direct : l'inspecteur.

Ouvrir l'inspecteur

  1. Va sur un site que tu connais (par ex. https://wikipedia.org ou un autre).
  2. Appuie sur F12 (ou clic droit sur un élément → Inspecter).
  3. Un panneau s'ouvre : à gauche/au-dessus la page, dans l'onglet Éléments (ou Inspecteur) le code HTML de la page.

Les autres onglets de l'inspecteur — détail pro

L'onglet Éléments n'est que le premier. L'inspecteur contient aussi :

OngletCe qu'il montreUtilité pour un dev web
Consoleles erreurs JavaScript et les messages de la pagevoir les erreurs (texte rouge) ; en HTML pur, on ne l'utilise pas encore, mais note qu'une erreur JS peut empêcher tout le JavaScript de la page de fonctionner
Network (Réseau)tous les fichiers chargés par la page (HTML, CSS, images, polices…)vérifier qu'une image se charge bien (statut 200 = OK, 404 = fichier introuvable), voir le poids de chaque ressource, mesurer le temps de chargement
Sourcesles fichiers source de la pagelire le HTML/CSS/JS original, poser des breakpoints JS
Lighthouseaudit automatique (performance, accessibilité, SEO, bonnes pratiques)obtenir un score /100 sur chaque axe avec des recommandations concrètes

Flag D1

Investigation

Ouvre l'inspecteur (F12) sur un site de ton choix, trouve le <h1> de la page (ou un titre).
Rends : le nom du site, le texte de ce titre, et une autre balise apprise aujourd'hui que tu as repérée dans son code.

0 sur 17 dans cette étape

14. Une page complète, commentée

Avant de te lancer, voici une page entière qui réunit tout ce que tu as appris : un modèle de référence. Lis-la en repérant chaque balise — tu dois maintenant toutes les reconnaître.

html
<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Léa Martin — Portfolio BTS SIO</title>
  </head>
  <body>
    <!-- bandeau du haut -->
    <header>
      <h1>Léa Martin</h1>
      <nav>
        <a href="index.html">Accueil</a>
        <a href="contact.html">Contact</a>
      </nav>
    </header>

    <!-- contenu principal -->
    <main>
      <section>
        <h2>À propos</h2>
        <p>Je suis <strong>étudiante</strong> en BTS SIO,
           passionnée de <em>développement web</em>.</p>
        <img src="images/lea.jpg" alt="Portrait de Léa Martin, étudiante en BTS SIO"
             width="200" height="200">
      </section>

      <section>
        <h2>Compétences</h2>
        <ul>
          <li>HTML</li>
          <li>CSS</li>
        </ul>
      </section>

      <p>Mon site préféré :
         <a href="https://developer.mozilla.org" target="_blank"
            rel="noopener noreferrer">MDN Web Docs</a></p>
    </main>

    <!-- pied de page -->
    <footer>
      <p>&copy; 2026 — Léa Martin</p>
    </footer>
  </body>
</html>

Flag A3

Checkpoint

Dans le modèle ci-dessus, combien y a-t-il de balises <h2> ? Quelle balise contient l'image ? Quelle entité produit le symbole © ?
Rends : tes 3 réponses.

0 sur 17 dans cette étape

15. Mini-projet : ta page de présentation

On assemble tout : une vraie page perso, première pierre de ton futur portfolio (qu'on enrichira puis qu'on déploiera en ligne dans les prochaines séances).

Le cahier des charges

  1. Le squelette HTML complet (doctype, head avec title + charset, body), indenté et avec au moins un commentaire.
  2. Un <header> avec ton nom en <h1>.
  3. Un <main> avec : un <h2> « À propos » + 2 paragraphes (dont du <strong>/<em>) ; un <h2> « Compétences » + une liste ; ta photo rangée dans images/ (<img> avec alt et le bon chemin) ; un lien externe.
  4. Un <footer> avec ton nom et l'année.

Flag B11

Mini-projet (production)

Réalise ta page de présentation complète et ouvre-la dans le navigateur.
Rends : ton code HTML complet, et une description (ou capture) de la page affichée.
Garde ce fichier : il servira de base au portfolio.

0 sur 17 dans cette étape

Flag E1

Extension (bonus)

Va plus loin selon ton envie :
1. Crée une 2e page contact.html et relie-la à ta page d'accueil (lien interne dans les deux sens).
2. Ajoute un tableau de tes logiciels (chapitre 12) à ta page.
Rends : ce que tu as ajouté et son code.

0 sur 17 dans cette étape

Pour finir

Ton antisèche — balises + bonne pratique

Je veux…Balise / SyntaxeDétail pro
un titre<h1> … <h6>un seul h1 par page ; hiérarchie stricte pour le SEO + WCAG
un paragraphe<p>bloc : passe automatiquement à la ligne avec espace
du gras / de l'italique<strong> / <em>sémantique (importance / emphase), pas juste visuel
un saut de ligne<br>balise auto-fermante, dans un <p> existant
un bout de texte ciblé<span>en ligne, sans sens propre — pour le CSS
une liste à puces / numérotée<ul><li> / <ol><li>tout élément va obligatoirement dans un <li>
un lien externe (nouvel onglet)<a href="https://..." target="_blank" rel="noopener noreferrer">rel="noopener noreferrer" = sécurité obligatoire
un lien interne / ancre / emailhref="page.html" / href="#id" / href="mailto:..."chemin relatif pour interne
une image<img src="..." alt="..." width="..." height="...">alt descriptif (WCAG 1.1.1) + dimensions pour éviter le layout shift
un tableau structuré<table><caption><thead><tbody><tr><th><td>colspan/rowspan pour fusionner des cellules
structurer (sémantique)<header> <nav> <main> <section> <article> <aside> <footer>préférer la balise sémantique à <div> quand elle existe
un conteneur générique<div> (bloc) / <span> (en ligne)quand aucune balise sémantique ne convient
un commentaire<!-- … -->invisible à l'écran, mais visible dans le code source
adapté aux mobiles<meta name="viewport" content="width=device-width, initial-scale=1">dans le <head>, toujours

Vérifie tes acquis

Exercice Réussi À revoir

Réponds par écrit avant de regarder le corrigé. Compte 1 point par réponse complète.

  1. Quelle est la différence entre le <head> et le <body> ?
  2. Pourquoi faut-il toujours mettre <!DOCTYPE html> en première ligne ?
  3. Qu'est-ce qu'un attribut ? Donne un exemple avec ses guillemets.
  4. Quelle balise pour un lien ? Pour une image ?
  5. Différence entre <ul> et <ol> ?
  6. À quoi sert l'attribut alt d'une image et pour qui est-il important ?
  7. Comment écrit-on le chemin d'une image rangée dans un sous-dossier images/ ?
  8. Tu veux ouvrir un lien dans un nouvel onglet sans risque de sécurité. Quelle est la syntaxe complète ?
  9. Quelle balise utilise-t-on pour une rubrique thématique avec titre ? Pour un contenu autonome (fiche produit, article) ?
  10. Que fait <meta name="viewport" content="width=device-width, initial-scale=1"> ?
Voir le corrigéMasquer le corrigé de l'exercice

1. <head> = les coulisses : infos pour le navigateur (titre d'onglet, encodage, viewport…), rien d'affiché. <body> = la scène : tout ce que le visiteur voit. 99 % du contenu va dans le <body>.

2. Sans <!DOCTYPE html>, le navigateur entre en quirks mode (mode de compatibilité des années 90) : marges, tailles, tableaux s'affichent différemment et de façon imprévisible. Avec, il applique les règles HTML5 standards.

3. Un attribut est une info en plus dans la balise ouvrante, écrite nom="valeur". Exemple : <a href="contact.html"> — href est l'attribut, "contact.html" est sa valeur.

4. Lien : <a href="...">. Image : <img src="..." alt="...">.

5. <ul> = liste à puces (ordre sans importance, ex. liste de compétences). <ol> = liste numérotée (ordre qui compte, ex. étapes d'une procédure).

6. L'attribut alt décrit l'image en texte. Important pour : (a) l'accessibilité — les lecteurs d'écran (NVDA, VoiceOver) le lisent à voix haute pour les utilisateurs aveugles ; (b) le SEO — Google l'utilise pour comprendre l'image ; (c) le cas où l'image ne charge pas — le texte apparaît à la place.

7. src="images/photo.jpg" — le nom du sous-dossier suivi d'un / puis du nom du fichier. Toujours des slashs /, jamais des antislashs \.

8. <a href="https://site.fr" target="_blank" rel="noopener noreferrer">Texte</a>. Le rel="noopener noreferrer" coupe l'accès à window.opener et protège contre le reverse tabnapping.

9. Rubrique thématique : <section> (toujours avec un titre h2/h3). Contenu autonome : <article> (fiche produit, billet de blog — pourrait être republié seul).

10. Elle dit au navigateur mobile d'adapter la largeur de la page à celle de l'écran (au lieu d'afficher une page de bureau compressée). Indispensable pour tout site consulté sur smartphone.

Tu avais trouvé ?

Glossaire

MotDéfinition
HTMLle langage qui décrit le contenu et la structure d'une page web
Balise (tag)un marqueur entre < > ; souvent par paire (ouvrante / fermante)
Attributune info en plus dans une balise, écrite nom="valeur" (ex. href, src, alt)
head / bodyles coulisses (infos) / la scène (contenu visible)
Sémantiqueune balise qui dit ce qu'elle contient (header, main, footer)
Auto-fermantebalise sans contenu ni fermeture (<br>, <img>)
Chemin relatifl'emplacement d'un fichier par rapport à la page (images/photo.jpg, ../)
Indentationle décalage du code « enfant » de 2 espaces, pour la lisibilité
Commentaireune note invisible dans le code (<!-- … -->)
Inspecteurl'outil du navigateur (F12) qui montre le HTML d'une page

TP terminé ?

Coche chaque livrable quand tu l'as : c'est la preuve que l'étape est acquise.

livrables
–
quiz réussi
–
de série
–
Voir tous les TP