CSS#
Le langage CSS (Cascading Style Sheet en français feuilles de style en cascade) permet de mettre en forme les documents HTML. Il permet notamment de modifier la police, la couleur, la taille et l'emplacement du contenu.
CSS est un langage basé sur des règles: il permet de définir des règles de style
pour un type d'élément donné, par exemple les titres principaux <h1></h1> ou
les paragraphes <p></p>.
Référencement#
Il existe deux façons d'associer du CSS à un document HTML.
Fichier CSS séparé#
Le CSS peut être écrit dans un fichier séparé (par exemple style.css). Pour
lier ce fichier à une page HTML, il faut ajouter une balise <link> dans le
<head> du document HTML. Cette balise a deux attributs importants:
relindique la relation (ici une feuille de style)hrefindique le chemin vers le fichier CSS
<head>
<link href="style.css" rel="stylesheet" type="text/css"/>
</head>
Cette méthode est recommandée car elle permet de séparer le contenu (HTML) de la présentation (CSS) et de réutiliser le même fichier CSS sur plusieurs pages.
Balise <style>#
Le CSS peut aussi être écrit directement dans le <head> du document HTML, à
l'intérieur de la balise <style>:
<head>
<style>
h1 {
color: green;
}
</style>
</head>
Cette méthode est pratique pour de petits projets ou pour tester rapidement. C'est celle utilisée dans les exercices ci-dessous.
Structure du code CSS#
La règle commence par un sélecteur qui indique à quelles balises cette règle doit s'appliquer. Ensuite, la liste des propriétés ainsi que leurs valeurs sont indiquées entre accolades. Chaque déclaration se termine par un point-virgule.
sélecteur {
propriété1: valeur1;
propriété2: valeur2;
}
Exemples:
h1 { /* Cette règle définit le style du titre principal. */
color: green; /* La couleur du texte est verte. */
text-align: center; /* L'alignement du texte est centré. */
}
p { /* Cette règle définit le style des paragraphes. */
font-family: verdana; /* La police utilisée est verdana. */
font-size: 20px; /* La taille de la police est 20 pixels. */
}
Propriétés CSS#
Propriété |
Description |
Exemple de valeur |
|---|---|---|
|
Couleur du texte |
|
|
Couleur de fond de l'élément |
|
|
Police de caractères |
|
|
Taille de la police |
|
|
Graisse du texte (épaisseur) |
|
|
Style de la police |
|
|
Alignement horizontal du texte |
|
|
Décoration du texte |
|
|
Transformation de la casse |
|
|
Hauteur de ligne (interligne) |
|
|
Espacement entre les lettres |
|
|
Bordure (épaisseur style couleur) |
|
|
Arrondi des coins |
|
|
Fusion des bordures de tableau |
|
|
Marge extérieure (autour de l'élément) |
|
|
Marge intérieure (entre contenu et bordure) |
|
|
Largeur de l'élément |
|
|
Hauteur de l'élément |
|
|
Style des puces de liste |
|
|
Forme du curseur au survol |
|
Les couleurs peuvent être indiquées de deux façons:
Par leur nom en anglais:
red,green,blue,black,white,cornsilk...En code RGB:
rgb(255, 0, 0)pour le rouge pur
Sélecteurs#
Dans ce cours, nous allons travailler sur 2 types de sélecteurs:
Sélecteur de type
Sélecteur de classe
Sélecteur de type#
Le sélecteur de type permet d'appliquer un style à toutes les balises de
même type (h1, h2, p, ...).
h1 { /* Cette règle définit le style du titre principal. */
color: green; /* La couleur du texte est verte. */
text-align: center; /* L'alignement du texte est centré. */
}
Ce style s'appliquera au contenu de toutes les balises <h1>...</h1>.
Sélecteur de classe#
Le sélecteur de classe permet d'appliquer un style à plusieurs éléments
qui appartiennent à une même classe (groupe). Pour cela, il faut ajouter un
attribut class à la balise HTML concernée.
| Fichier HTML | Fichier CSS |
|---|---|
<p class="centre">
Le texte de ce paragraphe sera centré.
</p>
<p>
Ce paragraphe ne sera pas centré.
</p>
|
.centre {
text-align: center;
}
|
Ce style ne s'appliquera qu'aux balises dont la classe est "centre".
Un élément peut aussi appartenir à plusieurs classes en les séparant par un espace:
<p class="centre rouge">Ce texte est centré et rouge.</p>
Conteneurs <div>#
La balise <div> est un élément bloc qui permet de regrouper plusieurs
éléments HTML. Seul, un <div> n'a aucun effet visuel : c'est le CSS qui lui
donne une apparence.
L'intérêt du <div> apparaît lorsqu'on le combine avec un sélecteur de
classe: on peut ainsi styliser indépendamment différentes zones d'une même
pageet regrouper des balises entre elles.
| Fichier HTML | Fichier CSS |
|---|---|
<div class="alerte">
<h2>Attention</h2>
<p>Le site sera en maintenance
ce soir de 22h à 23h.</p>
</div>
<div class="info">
<h2>Information</h2>
<p>Les inscriptions sont ouvertes.</p>
</div>
|
.alerte {
background-color: pink;
border: 4px solid red;
padding: 10px;
margin: 10px 0;
}
.info {
background-color: lightblue;
border: 4px solid blue;
padding: 10px;
margin: 10px 0;
}
|
Les deux <div> ont une structure HTML identique, mais chacun reçoit un style
différent grâce à sa classe.
Voici le résultat produit par le HTML et le CSS ci-dessus :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
.alerte {
background-color: pink;
border: 4px solid red;
padding: 10px;
margin: 10px 0;
}
.info {
background-color: lightblue;
border: 4px solid blue;
padding: 10px;
margin: 10px 0;
}
</style>
</head>
<body>
<div class="alerte">
<h2>Attention</h2>
<p>Le site sera en maintenance ce soir de 22h à 23h.</p>
</div>
<div class="info">
<h2>Information</h2>
<p>Les inscriptions sont ouvertes.</p>
</div>
</body>
</html>
Exercices#
Exercice 11#
Notez la propriété CSS qui permet de:
... changer la couleur du texte?
... changer la couleur de fond?
... changer la taille de la police?
... aligner le texte?
... changer la police de caractères?
... ajouter une bordure?
... mettre le texte en gras?
... ajouter une marge intérieure?
... arrondir les coins d'un élément?
... souligner du texte?
Exercice 12#
Dans la page ci-dessous, aucune des règles CSS ne produit l'effet attendu : le fond de la page devrait être jaune, le titre bleu et centré, les sous-titres orange et les paragraphes en taille 18px. Chaque règle contient une erreur. Exécutez le code pour voir le problème, puis corrigez les quatre erreurs.
1<!DOCTYPE html>
2<html>
3 <head>
4 <meta charset="utf-8">
5 <style>
6 body {
7 background-color: jaune;
8 }
9 h1 {
10 color: blue
11 text-align: center;
12 }
13 h2 {
14 font-color: darkorange;
15 }
16 p {
17 font-size: 18;
18 }
19 </style>
20 </head>
21 <body>
22 <h1>Le monde des océans</h1>
23 <h2>Les profondeurs</h2>
24 <p>Les océans couvrent plus de 70% de la surface de la Terre.</p>
25 <p>Le point le plus profond est la fosse des Mariannes.</p>
26 </body>
27</html>
Solution
Les quatre erreurs, dans l'ordre :
jaunen'est pas un nom de couleur valide : en CSS, les noms de couleurs s'écrivent en anglais. Il faut donc écrireyellow.Il manque un point-virgule après
color: blue. Du coup, le navigateur litcolor: blue text-align: centercomme une seule valeur invalide et ignore les deux propriétés.La propriété
font-colorn'existe pas en CSS : pour changer la couleur du texte, la propriété s'appelle simplementcolor. Il faut donc écrirecolor: darkorange;.La taille
18doit avoir une unité :18px. Un nombre sans unité n'est pas accepté pourfont-size.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
body {
background-color: yellow;
}
h1 {
color: blue;
text-align: center;
}
h2 {
color: darkorange;
}
p {
font-size: 18px;
}
</style>
</head>
<body>
<h1>Le monde des océans</h1>
<h2>Les profondeurs</h2>
<p>Les océans couvrent plus de 70% de la surface de la Terre.</p>
<p>Le point le plus profond est la fosse des Mariannes.</p>
</body>
</html>
Exercice 13#
Complétez les règles CSS pour:
Mettre le
<h1>endarkblueet centréMettre les
<h2>engreenMettre les
<p>en policeGeorgiaet taille16px
1<!DOCTYPE html>
2<html>
3 <head>
4 <meta charset="utf-8">
5 <style>
6 h1 {
7 }
8 h2 {
9 }
10 p {
11 }
12 </style>
13 </head>
14 <body>
15 <h1>Les planètes du système solaire</h1>
16 <h2>Les planètes telluriques</h2>
17 <p>Mercure, Vénus, la Terre et Mars sont des planètes rocheuses.</p>
18 <h2>Les géantes gazeuses</h2>
19 <p>Jupiter, Saturne, Uranus et Neptune sont composées principalement de gaz.</p>
20 </body>
21</html>
Solution
1<!DOCTYPE html>
2<html>
3 <head>
4 <meta charset="utf-8">
5 <style>
6 h1 {
7 color: darkblue;
8 text-align: center;
9 }
10 h2 {
11 color: green;
12 }
13 p {
14 font-family: Georgia;
15 font-size: 16px;
16 }
17 </style>
18 </head>
19 <body>
20 <h1>Les planètes du système solaire</h1>
21 <h2>Les planètes telluriques</h2>
22 <p>Mercure, Vénus, la Terre et Mars sont des planètes rocheuses.</p>
23 <h2>Les géantes gazeuses</h2>
24 <p>Jupiter, Saturne, Uranus et Neptune sont composées principalement de gaz.</p>
25 </body>
26</html>
Exercice 14#
Le contenu d'une page a été défini en HTML de la manière suivante.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Labrador</title>
</head>
<body>
<h1>Le Labrador</h1>
<h2>Origine et caractéristiques</h2>
<p>Le Labrador est une race de chien originaire du Canada, plus précisément
de Terre-Neuve. Il est connu pour son tempérament amical, son intelligence
et sa grande capacité d'adaptation.</p>
<h3>Caractéristiques</h3>
<table>
<tr>
<th>Taille</th><th>Poids</th><th>Espérance de vie</th><th>Couleurs</th>
</tr>
<tr>
<td>54 à 57 cm</td><td>25 à 36 kg</td><td>10 à 14 ans</td>
<td>Noir, jaune, chocolat</td>
</tr>
</table>
<h2>Comportement et utilisation</h2>
<p>Très sociable, le Labrador est souvent utilisé comme chien guide pour les
personnes malvoyantes, mais aussi comme chien de sauvetage et compagnon
familial.</p>
<h2>Photo</h2>
<img src="https://thumb.wikimedia.org/wikipedia/commons/thumb/1/1d/Golden_retriever_stehfoto.jpg/1280px-Golden_retriever_stehfoto.jpg?utm_source=fr.wikipedia.org&utm_campaign=imageinfo&utm_content=thumbnail">
<p>Source: texte généré par Copilot.</p>
</body>
</html>
Au moyen du CSS, modifiez les éléments suivants:
Le titre principal doit être en bleu et centré.
Les sous-titres de niveau 2 doivent être en couleur (choix de couleurs).
La table doit avoir une bordure (propriétés:
borderetborder-collapse).La table doit prendre
100%de la largeur de la page.L'image doit avoir une largeur de
300px.La propriété
font-familydes paragraphes doit être"consolas".La couleur de fond
background-colorde la page doit êtrecornsilk.
1<style>
2 /* Écrivez le CSS ici */
3</style>
Solution
<style>
h1 {
color: blue;
text-align: center;
}
h2 {
color: darkorange;
}
table {
border: 2px solid black;
border-collapse: collapse;
width: 100%;
}
img {
width: 300px;
}
p {
font-family: "consolas";
}
body {
background-color: cornsilk;
}
</style>
Exercice 15#
Lisez le code ci-dessous sans l'exécuter et prédisez le résultat. Rappelez-vous qu'un sélecteur de classe l'emporte sur un sélecteur de type lorsque les deux s'appliquent au même élément.
<style>
p { color: blue; }
h2 { text-align: center; }
.vedette { color: red; }
</style>
<h2>Bienvenue</h2>
<p>Premier paragraphe.</p>
<p class="vedette">Deuxième paragraphe.</p>
<p class="autre">Troisième paragraphe.</p>
De quelle couleur s'affiche le premier paragraphe ?
De quelle couleur s'affiche le deuxième paragraphe (classe
vedette) ?De quelle couleur s'affiche le troisième paragraphe (classe
autre) ?Le titre « Bienvenue » est-il centré ?
Le troisième paragraphe est-il centré ?
Solution
Bleu (blue). La règle
p { color: blue; }s'applique à tous les paragraphes.Rouge (red). Deux règles concernent ce paragraphe :
p(bleu) et.vedette(rouge). Quand un sélecteur de type et un sélecteur de classe s'appliquent au même élément, c'est la classe qui l'emporte. Le paragraphe est donc rouge.Bleu (blue). La classe
autren'a aucune règle définie, elle ne change donc rien. Le paragraphe reste bleu grâce à la règlep.Oui (yes). La règle
h2 { text-align: center; }centre le titre.Non (no). Le centrage n'a été défini que pour les
h2, pas pour lesp.
Exercice 16#
Complétez le CSS pour:
Donner à
<body>une couleur de fondlightyellowDéfinir la classe
encadre: bordure2px solid steelblue,paddingde8px, couleur de fondaliceblue
1<!DOCTYPE html>
2<html>
3 <head>
4 <meta charset="utf-8">
5 <style>
6 body {
7 }
8 .encadre {
9 }
10 </style>
11 </head>
12 <body>
13 <h1>Mes matières préférées</h1>
14 <p>J'aime beaucoup les mathématiques.</p>
15 <p class="encadre">L'informatique est ma matière favorite.</p>
16 <p>Le français est important pour communiquer.</p>
17 <p class="encadre">La physique explique comment fonctionne le monde.</p>
18 </body>
19</html>
Solution
1<!DOCTYPE html>
2<html>
3 <head>
4 <meta charset="utf-8">
5 <style>
6 body {
7 background-color: lightyellow;
8 }
9 .encadre {
10 border: 2px solid steelblue;
11 padding: 8px;
12 background-color: aliceblue;
13 }
14 </style>
15 </head>
16 <body>
17 <h1>Mes matières préférées</h1>
18 <p>J'aime beaucoup les mathématiques.</p>
19 <p class="encadre">L'informatique est ma matière favorite.</p>
20 <p>Le français est important pour communiquer.</p>
21 <p class="encadre">La physique explique comment fonctionne le monde.</p>
22 </body>
23</html>
Exercice 17#
Le contenu d'une page a été défini en HTML de la manière suivante.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>L'escalade sportive</title>
</head>
<body>
<h1>L'escalade sportive</h1>
<h2>Présentation</h2>
<p>L'escalade sportive consiste à gravir des parois rocheuses naturelles ou
des murs artificiels. Elle est devenue discipline olympique en 2021 lors
des Jeux de Tokyo.</p>
<h2>Les trois disciplines</h2>
<p class="discipline">La difficulté: grimper le plus haut possible sur une
voie longue sans limite de temps.</p>
<p>Le bloc: résoudre de courtes séquences de mouvements sur des structures
de 4 à 5 mètres, sans corde.</p>
<p class="discipline">La vitesse: deux grimpeurs s'affrontent sur une voie
standardisée de 15 mètres. Le record du monde est inférieur à 5 secondes.</p>
<h2>Matériel essentiel</h2>
<p>Chaussons de grimpe, baudrier, corde, dégaines et magnésie constituent
l'équipement de base pour pratiquer l'escalade en sécurité.</p>
<p class="source">Source: Fédération française de la montagne et de l'escalade, 2024.</p>
</body>
</html>
La page contient deux classes CSS à définir:
discipline: pour mettre en avant les disciplines olympiquessource: pour la référence en bas de page
Au moyen du CSS:
Le
<h1>doit être centré et en couleurrgb(44, 62, 80).Les
<h2>doivent être en couleurrgb(230, 126, 34).La classe
disciplinedoit avoir: fondaliceblue, bordure gauche4px solid steelblue(border-left) et unpaddingde8px.La classe
sourcedoit être en italique, couleurgrayet taille12px.La couleur de fond de la page doit être
whitesmoke.
1<style>
2 /* Écrivez le CSS ici */
3</style>
Solution
<style>
h1 {
text-align: center;
color: rgb(44, 62, 80);
}
h2 {
color: rgb(230, 126, 34);
}
.discipline {
background-color: aliceblue;
border-left: 4px solid steelblue;
padding: 8px;
}
.source {
font-style: italic;
color: gray;
font-size: 12px;
}
body {
background-color: whitesmoke;
}
</style>
Exercice 18#
Dans la page ci-dessous :
Le
<h1>doit être centré et de couleurteal.Créez une classe en CSS
surlignequi met le fond enyellowet le texte en gras. Ajoutez cette classe dans le HTML aux deux phrases importantes : "Rendez vos devoirs avant vendredi." et "L'examen aura lieu le 20 juin."
1<!DOCTYPE html>
2<html>
3 <head>
4 <meta charset="utf-8">
5 <style>
6 /* Écrivez le CSS ici */
7 </style>
8 </head>
9 <body>
10 <h1>Informations de la classe</h1>
11 <p>Bienvenue sur la page de la classe.</p>
12 <p>Rendez vos devoirs avant vendredi.</p>
13 <p>Pensez à consulter le site régulièrement.</p>
14 <p>L'examen aura lieu le 20 juin.</p>
15 </body>
16</html>
Solution
Il faut ajouter class="surligne" sur les deux paragraphes concernés (dans le
HTML) et écrire les règles CSS correspondantes.
1<!DOCTYPE html>
2<html>
3 <head>
4 <meta charset="utf-8">
5 <style>
6 h1 {
7 text-align: center;
8 color: teal;
9 }
10 .surligne {
11 background-color: yellow;
12 font-weight: bold;
13 }
14 </style>
15 </head>
16 <body>
17 <h1>Informations de la classe</h1>
18 <p>Bienvenue sur la page de la classe.</p>
19 <p class="surligne">Rendez vos devoirs avant vendredi.</p>
20 <p>Pensez à consulter le site régulièrement.</p>
21 <p class="surligne">L'examen aura lieu le 20 juin.</p>
22 </body>
23</html>