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:

  1. rel indique la relation (ici une feuille de style)

  2. href indique 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

color

Couleur du texte

red, rgb(255, 0, 0)

background-color

Couleur de fond de l'élément

yellow, lightblue, antiquewhite

font-family

Police de caractères

Arial, verdana, fantasy

font-size

Taille de la police

20px, 1.5em, 120%

font-weight

Graisse du texte (épaisseur)

bold, normal, 600

font-style

Style de la police

italic, normal

text-align

Alignement horizontal du texte

left, center, right, justify

text-decoration

Décoration du texte

underline, none, line-through

text-transform

Transformation de la casse

uppercase, lowercase, capitalize

line-height

Hauteur de ligne (interligne)

1.5, 24px

letter-spacing

Espacement entre les lettres

2px, 0.1em

border

Bordure (épaisseur style couleur)

2px solid black, 1px dashed red

border-radius

Arrondi des coins

10px, 50%

border-collapse

Fusion des bordures de tableau

collapse, separate

margin

Marge extérieure (autour de l'élément)

10px, 0 auto

padding

Marge intérieure (entre contenu et bordure)

5px, 10px 20px

width

Largeur de l'élément

300px, 100%, 50%

height

Hauteur de l'élément

200px, auto

list-style

Style des puces de liste

none, disc, square

cursor

Forme du curseur au survol

pointer, default, crosshair

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:

  1. Sélecteur de type

  2. 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 HTMLFichier 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 HTMLFichier 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:

  1. ... changer la couleur du texte?

  2. ... changer la couleur de fond?

  3. ... changer la taille de la police?

  4. ... aligner le texte?

  5. ... changer la police de caractères?

  6. ... ajouter une bordure?

  7. ... mettre le texte en gras?

  8. ... ajouter une marge intérieure?

  9. ... arrondir les coins d'un élément?

  10. ... 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>

Exercice 13#

Complétez les règles CSS pour:

  1. Mettre le <h1> en darkblue et centré

  2. Mettre les <h2> en green

  3. Mettre les <p> en police Georgia et taille 16px

 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>

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:

  1. Le titre principal doit être en bleu et centré.

  2. Les sous-titres de niveau 2 doivent être en couleur (choix de couleurs).

  3. La table doit avoir une bordure (propriétés: border et border-collapse).

  4. La table doit prendre 100% de la largeur de la page.

  5. L'image doit avoir une largeur de 300px.

  6. La propriété font-family des paragraphes doit être "consolas".

  7. La couleur de fond background-color de la page doit être cornsilk.

1<style>
2  /* Écrivez le CSS ici */
3</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>
  1. De quelle couleur s'affiche le premier paragraphe ?

  2. De quelle couleur s'affiche le deuxième paragraphe (classe vedette) ?

  3. De quelle couleur s'affiche le troisième paragraphe (classe autre) ?

  4. Le titre « Bienvenue » est-il centré ?

  5. Le troisième paragraphe est-il centré ?

Exercice 16#

Complétez le CSS pour:

  1. Donner à <body> une couleur de fond lightyellow

  2. Définir la classe encadre: bordure 2px solid steelblue, padding de 8px, couleur de fond aliceblue

 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>

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 olympiques

  • source: pour la référence en bas de page

Au moyen du CSS:

  1. Le <h1> doit être centré et en couleur rgb(44, 62, 80).

  2. Les <h2> doivent être en couleur rgb(230, 126, 34).

  3. La classe discipline doit avoir: fond aliceblue, bordure gauche 4px solid steelblue (border-left) et un padding de 8px.

  4. La classe source doit être en italique, couleur gray et taille 12px.

  5. La couleur de fond de la page doit être whitesmoke.

1<style>
2  /* Écrivez le CSS ici */
3</style>

Exercice 18#

Dans la page ci-dessous :

  1. Le <h1> doit être centré et de couleur teal.

  2. Créez une classe en CSS surligne qui met le fond en yellow et 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>