Numérique et sciences informatiques (spécialité) · Première
HTML et CSS : cours de Première NSI
Publié le 7 novembre 2026 · Mis à jour le 7 novembre 2026 · Signaler une erreur
L'essentiel
- HTML est un langage de balises : il décrit la structure d'une page (titres, paragraphes, liens, listes, sons, vidéos). 24
- Une balise ouvrante contient un nom et des attributs de la forme
attribut=valeur; la balise fermante reprend le nom précédé d'une barre oblique. 4 - Un document a une racine qui contient un
headet unbody; l'attributlangindique la langue principale. 4 - Les éléments sont de deux catégories : bloc ou texte (en ligne). 4
- CSS s'ajoute au HTML pour la mise en forme : le HTML dit ce qu'est un contenu, le CSS dit comment il s'affiche. 4
Introduction : à quoi servent HTML et CSS ?
Quand tu ouvres un site dans ton navigateur, tu vois des titres, des images, des boutons et des couleurs. Derrière cet affichage, il y a un fichier texte que le navigateur lit puis traduit en image à l'écran. Ce fichier est écrit dans un langage de balises appelé HTML. 2
Le HTML ne sert pas à calculer ni à décider : il décrit le contenu. Il dit « ceci est un titre », « ceci est un paragraphe », « ceci est un lien ». Pour l'aspect visuel (couleurs, polices, marges), on y ajoute un autre langage, le CSS. 4 Ensemble, ils forment la base de la création de sites Web. 4
Dans ce cours, tu vas apprendre à lire et à écrire une page simple. Tu verras :
- comment est faite une balise ;
- comment est organisé un document complet ;
- la différence entre éléments de bloc et éléments de texte ;
- comment habiller une page avec du CSS ;
- les erreurs qui reviennent le plus souvent.
Anatomie d'une balise HTML
Un élément permet de signaler, par exemple, un en-tête, un paragraphe, un lien hypertexte, une liste, un son ou une vidéo. 4 Le contenu concerné est placé entre deux repères : une balise qui marque le début et une balise qui marque la fin. On parle de balise ouvrante et de balise fermante. 4
| Partie | Rôle | Exemple |
|---|---|---|
| Balise ouvrante | Marque le début de l'élément | <p> |
| Nom | Indique le type d'élément | p |
| Attribut | Précise une option sous la forme attribut=valeur | src="chat.png" |
| Contenu | Texte ou éléments placés à l'intérieur | Bonjour |
| Balise fermante | Marque la fin de l'élément | </p> |
Structure d'un document HTML
Les éléments courants : de bloc ou de texte
Il existe beaucoup d'éléments, mais quelques-uns suffisent pour construire des pages complètes. Grâce à eux, on marque un titre, un paragraphe, un lien, une liste, et on peut aussi intégrer un son ou une vidéo. 4
En pratique, on retient l'idée suivante, que tu peux vérifier en testant :
- un élément de bloc occupe sa propre ligne, comme un titre
h1ou un paragraphep; - un élément en ligne s'insère au milieu d'une phrase sans la couper, comme
strong(mise en valeur) oua(lien).
| Besoin | Élément | Remarque |
|---|---|---|
| Titre principal | h1 |
un seul par page, en général |
| Sous-titre | h2 à h6 |
du plus important au moins important |
| Paragraphe | p |
un bloc de texte |
| Lien | a |
l'attribut href donne la destination |
| Liste à puces | ul et li |
chaque entrée est un li |
| Liste numérotée | ol et li |
chaque entrée est un li |
| Image | img |
attributs src (fichier) et alt (description) |
Le lien hypertexte est ce qui fait du Web un réseau de pages reliées entre elles. L'élément a reçoit un attribut href qui indique la destination. Un lien peut mener vers un autre site, vers une autre page du même site, ou rester sur la même page : un lien intra-page renvoie vers une autre partie du document déjà ouvert. 3
CSS : mettre en forme la page
Si tu affiches la page d'exemple précédente telle quelle, elle est sobre : texte noir sur fond blanc, titres plus gros. Le HTML s'occupe de la structure. Pour l'apparence, on utilise le langage de mise en forme CSS, qui accompagne le HTML dans la création de sites. 4
Cette séparation est précieuse : tu peux changer toutes les couleurs d'un site en modifiant un seul fichier de style, sans toucher au contenu.
| Sélecteur | Écriture CSS | Ce qu'il vise |
|---|---|---|
| Par nom d'élément | h1 { ... } |
tous les h1 |
| Par classe | .alerte { ... } |
tous les éléments portant class="alerte" |
| Par identifiant | #entete { ... } |
l'élément portant id="entete" |
Une classe peut être donnée à plusieurs éléments ; un identifiant doit être unique dans la page.
color: couleur du texte ;background-color: couleur de fond ;font-size: taille du texte ;text-align: alignement (left,center,right) ;margin: espace à l'extérieur d'un élément ;padding: espace à l'intérieur, entre le contenu et la bordure ;border: bordure.
Plusieurs règles peuvent viser le même élément. Si elles se contredisent sur une propriété, c'est en général la règle la plus précise qui l'emporte, ou, à précision égale, la plus récente dans le fichier.
Méthode : construire une page de A à Z
Exercices corrigés
Exercice 1 Décortiquer une balise
Un lien est écrit ainsi : une balise ouvrante dont l'intérieur (entre les signes < et >) est a href="contact.html", puis le texte « Nous écrire », puis une balise fermante.
- Donne le nom de la balise.
- Écris ce qu'il y a entre
<et>pour la balise ouvrante, puis pour la balise fermante. - Quel est l'attribut ? Quelle est sa valeur ?
- Quel texte l'utilisateur voit-il à l'écran ?
Indice 1
Le nom est le premier mot après le signe <.
Indice 2
Un attribut s'écrit nom=valeur.
Voir la correction pas à pas
Le nom de la balise est
a, car c'est le premier mot après le signe<.La balise ouvrante contient
a href="contact.html"; la balise fermante contient/a, avec une barre oblique et le même nom.L'attribut est
href; sa valeur est"contact.html", la destination du lien.Le contenu placé entre les deux balises est « Nous écrire » : c'est ce que l'utilisateur voit, sous forme de lien cliquable.
Toute balise se lit de la même façon : nom, attributs éventuels, contenu, fermeture. Le texte visible est toujours le contenu entre les deux balises, jamais les attributs.
Exercice 2 Corriger une page défectueuse
Voici une page mal construite :
<html>
<head>
<h1>Mes recettes</h1>
</head>
<body>
<p>Un gâteau <strong>facile</p></strong>
<ul>
<li>Farine
<li>Sucre</li>
</ul>
</body>
</html>
Repère au moins trois erreurs, explique-les, puis réécris la page corrigée. On veut une page en français.
Indice 1
Cherche ce qui est placé au mauvais endroit, puis les balises mal fermées.
Indice 2
Pense à l'attribut qui indique la langue sur la racine.
Voir la correction pas à pas
Le titre
h1est placé dans lehead, alors que le contenu visible doit se trouver dans lebody. Le navigateur corrige souvent ce genre d'erreur tout seul, mais la page n'est plus valide. On déplace donc le titre dans lebody.L'imbrication est incorrecte dans
<strong>facile</p></strong>:strongouvert en dernier doit se fermer en premier, donc<strong>facile</strong></p>.Le premier
lin'est pas fermé : on ajoute</li>après « Farine ».La racine n'indique pas la langue : on ajoute
lang="fr"surhtml.On peut aussi ajouter un
titledans lehead, qui reste vide sinon.Version corrigée :
<html lang="fr"> <head> <title>Mes recettes</title> </head> <body> <h1>Mes recettes</h1> <p>Un gâteau <strong>facile</strong></p> <ul> <li>Farine</li> <li>Sucre</li> </ul> </body> </html>
Les trois erreurs principales sont un contenu visible placé dans le head, une imbrication croisée et une balise non fermée. Quand une page se comporte bizarrement, vérifie d'abord ces points.
Exercice 3 Écrire une règle CSS
Une page contient deux paragraphes :
<p>Texte ordinaire.</p>
<p class="astuce">Pense à enregistrer ton fichier.</p>
Écris le CSS qui :
- met en bleu le texte de tous les paragraphes ;
- met un fond jaune clair (
lightyellow) et du gras uniquement sur le paragraphe de classeastuce.
Explique ensuite ce qui s'affiche pour chaque paragraphe.
Indice 1
Un sélecteur de classe commence par un point.
Indice 2
La couleur bleue du texte s'applique aussi au paragraphe de classe astuce, qui reste un paragraphe.
Voir la correction pas à pas
Pour viser tous les paragraphes, on utilise le sélecteur d'élément
pavec la déclarationcolor: blue;.Pour viser le seul paragraphe signalé, on utilise le sélecteur de classe
.astuce: le point indique qu'il s'agit d'une classe.On y place deux déclarations :
background-color: lightyellow;etfont-weight: bold;.Le CSS complet est :
p { color: blue; } .astuce { background-color: lightyellow; font-weight: bold; }Le premier paragraphe s'affiche en bleu, sur fond blanc, en graisse normale. Le second est aussi en bleu (il est un
p), mais avec un fond jaune clair et en gras, grâce à la classe.
Une règle large (par élément) pose le style commun, et une règle de classe ajoute des particularités. Le second paragraphe cumule les deux règles car elles ne se contredisent pas.
Quiz
8 questions · correction immédiate · ton score reste sur ton appareil.
-
Une balise fermante contient un
<, une barre oblique, le nom de la balise, puis un>. 4 Ici cela donne</p>. Les autres versions inversent la barre oblique, la placent mal ou inventent un mot qui n'existe pas. -
Dans une balise ouvrante, les attributs s'écrivent sous la forme
attribut=valeur. 4 Icisrcest l'attribut et"chat.png"sa valeur. Le nom de la balise estimg, le mot placé juste après le signe d'ouverture. -
La racine contient un élément
headet un élémentbody. 4 Letitlese trouve dans lehead, lesh1etpdans lebody: ils ne sont donc pas des enfants directs de la racine. -
La langue primaire du document se définit avec l'attribut
lang, par exempleenpour l'anglais. 4srcdésigne la source d'une image,hrefla destination d'un lien etclassun nom de classe pour le CSS. -
Les éléments se répartissent en bloc (block) et texte (inline). 4 « Ouvrant » et « fermant » qualifient les balises d'un même élément, pas ses catégories.
-
C'est faux : la structure est décrite en HTML grâce aux éléments. 4 Le CSS s'occupe de l'apparence : couleurs, tailles, marges. La confusion vient du fait que les deux langages travaillent ensemble sur la même page.
-
Un sélecteur de classe commence par un point :
.alerte. Le dièse#vise un identifiant, unique dans la page. Écrirealerteseul viserait des éléments qui s'appelleraientalerte, ce qui n'existe pas en HTML.
Les questions qu'on se pose
Quelle est la différence entre une balise et un élément ?
Dans le langage courant, les deux mots sont employés l'un pour l'autre : un élément HTML s'appelle aussi balise ou tag. 4 Si l'on veut être précis, l'élément est l'ensemble « balise ouvrante + contenu + balise fermante », alors que la balise désigne chacun des deux repères.
Pourquoi séparer le HTML et le CSS au lieu de tout écrire au même endroit ?
Parce que ce ne sont pas les mêmes rôles : le HTML décrit le contenu, le CSS son aspect. 4 En les séparant, tu modifies le style de dix pages en changeant un seul fichier, et tu peux relire le contenu sans être gêné par des détails de couleur.
Que se passe-t-il si j'oublie de fermer une balise ?
Le navigateur ne plante pas : il essaie de deviner où ton élément s'arrête. Le résultat peut donc être inattendu, par exemple un texte entier en gras. Prends l'habitude de fermer chaque balise tout de suite après l'avoir ouverte, puis de remplir son contenu.
Comment savoir si un élément est de bloc ou en ligne ?
Teste-le : place-le entre deux phrases dans une page. S'il passe à la ligne et occupe toute la largeur, c'est un bloc ; s'il reste dans le fil de la phrase, il est en ligne. Les deux catégories existent en HTML. 4 Un titre h1 ou un paragraphe p sont des blocs ; strong et a sont en ligne.
Faut-il apprendre toutes les balises par cœur ?
Non. Retiens la structure d'une balise, la structure d'un document et une dizaine d'éléments courants (titres, paragraphe, liste, lien, image). Pour le reste, une page de référence suffit. L'important est de comprendre la logique : un élément, des attributs, un contenu.
Sources
- Ressources libres sur la science informatique - programmation, réseau, codage de l'information, Éduscol STI. Consulté le 7 novembre 2026.
- Ressource pédagogique NSI — HTML & CSS, Éduscol. Consulté le 7 novembre 2026.
- HTML & CSS en NSI — Cours et exercices, Académie de Lyon. Consulté le 7 novembre 2026.
- Élément HTML, Wikipédia. Consulté le 7 novembre 2026.
Les numéros dans le texte renvoient à ces sources. Une source qui ne dit pas ce qu'on lui fait dire ? Signale-le.