Séance 3 · 2 heures

Découvrir le CSS et mettre en forme une page web

Relier une feuille de style à une page HTML, cibler précisément ses éléments et construire une identité visuelle cohérente en maîtrisant les propriétés fondamentales et le modèle de boîte.

CSS 1Pratique guidéeProjet cumulatifPrérequis : chapitres 1 et 2

Déroulé de la séance

Rappel

Structure HTML et page d’inscription du chapitre 2.

Fonctionnement

Liaison, syntaxe, sélecteurs, cascade et héritage.

Identité visuelle

Couleurs, typographie et états interactifs.

Modèle de boîte

Dimensions, espacements, cartes et contrôle final.

I

Comprendre le rôle et le fonctionnement du CSS

1

Relier le CSS au document HTML

a

Distinguer la structure HTML et la présentation CSS

structureprésentationcontenuséparationmaintenance

Le HTML décrit la nature et l’organisation des contenus, tandis que le CSS définit leur apparence. Un titre doit donc être identifié comme un titre dans le document HTML, puis mis en forme dans la feuille CSS. Cette séparation permet de modifier l’apparence de plusieurs pages sans réécrire leur contenu et rend le code plus facile à comprendre et à maintenir.

Exemple de code
<!-- index.html -->
<h1>Initiation au développement web</h1>
<p>Découvrez les bases du HTML et du CSS.</p>

/* style.css */
h1 {
  color: #17324d;
  font-size: 2rem;
}

p {
  color: #374151;
}
b

Intégrer une feuille de style avec l’élément link

feuille externeliaisonlinkhrefréutilisation

L’élément link, placé dans la partie head, relie la page à une feuille de style externe. L’attribut rel="stylesheet" indique la nature de la ressource et href précise son emplacement. Une même feuille CSS peut ainsi être utilisée par plusieurs pages afin de conserver une identité graphique homogène.

Exemple de code
<head>
  <meta charset="UTF-8">
  <title>Inscription à la formation</title>
  <link rel="stylesheet" href="style.css">
</head>
c

Comprendre la syntaxe d’une règle CSS

sélecteurpropriétévaleurdéclarationaccolade

Une règle CSS commence par un sélecteur désignant les éléments concernés. Les déclarations sont placées entre accolades et associent une propriété à une valeur. Chaque déclaration se termine normalement par un point-virgule. Une même règle peut contenir plusieurs déclarations.

Exemple de code
h2 {
  color: #0f766e;
  font-size: 1.5rem;
  text-align: center;
}
2

Sélectionner les éléments à mettre en forme

a

Utiliser les sélecteurs de balises

élémentsélecteurbaliserègle globaleciblage

Un sélecteur de balise applique une règle à tous les éléments HTML portant le même nom. Le sélecteur p cible tous les paragraphes, tandis que h1 cible tous les titres de premier niveau. Cette méthode convient aux styles généraux.

Exemple de code
body {
  font-family: Arial, sans-serif;
}

h1 {
  color: #17324d;
}

p {
  line-height: 1.6;
}
b

Cibler une classe avec l’attribut class

classeréutilisationpointcatégoriestyle commun

Une classe permet d’appliquer un même style à plusieurs éléments, même s’ils utilisent des balises différentes. Elle est déclarée avec l’attribut HTML class et ciblée en CSS au moyen d’un point. Un élément peut recevoir plusieurs classes séparées par des espaces.

Exemple de code
<p class="information">Les inscriptions ferment le 15 octobre.</p>
<p class="information importante">Il reste cinq places.</p>

.information {
  background-color: #e0f2fe;
  padding: 1rem;
}

.importante {
  color: #b91c1c;
  font-weight: bold;
}
c

Identifier un élément unique avec l’attribut id

identifiantunicitédièseancreélément précis

L’attribut id identifie un élément unique dans la page. En CSS, il est ciblé avec le caractère #. Un identifiant peut également servir de destination à un lien interne ou être utilisé par JavaScript. Pour les styles réutilisables, les classes restent généralement préférables.

Exemple de code
<section id="inscription">
  <h2>Formulaire d’inscription</h2>
</section>

#inscription {
  background-color: #ffffff;
  border: 2px solid #0f766e;
  padding: 1.5rem;
}
3

Comprendre l’application des styles

a

Combiner et préciser les sélecteurs

combinaisondescendantprécisioncontexteciblage

Les sélecteurs peuvent être combinés pour cibler les éléments selon leur contexte. Le sélecteur nav a concerne uniquement les liens placés dans un élément nav, tandis que p.alerte cible les paragraphes possédant la classe alerte.

Exemple de code
nav a {
  color: #ffffff;
}

p.alerte {
  color: #b91c1c;
  font-weight: bold;
}
b

Comprendre la cascade et la priorité des règles

cascadespécificitéprioritéordreconflit

Lorsque plusieurs règles modifient la même propriété, le navigateur tient notamment compte de la précision du sélecteur et, à priorité égale, de l’ordre des règles. Une classe est généralement plus précise qu’un sélecteur de balise. L’usage systématique de !important doit être évité.

Exemple de code
<p class="message">Les inscriptions sont ouvertes.</p>

p {
  color: #374151;
}

.message {
  color: #0f766e;
}

/* La règle de classe est appliquée. */
c

Observer l’héritage des propriétés

héritageparentenfanttransmissiontypographie

Certaines propriétés, notamment celles relatives au texte, sont transmises par un élément parent à ses descendants. Définir la police et la couleur sur body suffit donc souvent à les appliquer à l’ensemble de la page. Les bordures et les marges ne sont normalement pas héritées.

Exemple de code
body {
  font-family: Arial, sans-serif;
  color: #1f2937;
}

/* Les titres et paragraphes héritent de ces valeurs. */
1

Exercice — Relier et cibler

10 minutes · Individuel · Inspecteur du navigateur

Mission

Reprenez la page d’inscription réalisée au chapitre 2 et créez une feuille style.css.

Consignes

  1. Reliez la feuille externe à la page HTML.
  2. Appliquez un style général aux titres et aux paragraphes.
  3. Créez une classe réutilisable pour les informations importantes.
  4. Ciblez une zone unique avec un identifiant.
  5. Repérez dans l’inspecteur une règle héritée et une règle remplacée.
Livrable : une page correctement reliée à sa feuille CSS et utilisant au moins un sélecteur de balise, une classe, un identifiant et un sélecteur combiné.
II

Construire l’identité visuelle de la page

1

Définir les couleurs et les arrière-plans

a

Utiliser les principales notations de couleur

couleur nomméehexadécimalRGBHSLopacité

Le CSS permet d’exprimer les couleurs de plusieurs manières. La notation hexadécimale est fréquente dans les chartes graphiques, rgb() décrit les composantes rouge, verte et bleue, et hsl() sépare la teinte, la saturation et la luminosité. Une composante alpha ajoute de la transparence.

Exemple de code
h1 { color: #17324d; }
.information { background-color: rgb(224, 242, 254); }
.alerte { color: hsl(0, 72%, 42%); }
.voile { background-color: rgba(15, 118, 110, 0.15); }
b

Appliquer une couleur ou une image d’arrière-plan

arrière-plancouleurimagepositionrépétition

background-color applique une couleur derrière le contenu. background-image peut afficher une image ou un dégradé. Des propriétés complémentaires contrôlent sa position, sa répétition et sa taille. Le texte doit conserver un contraste suffisant avec l’arrière-plan.

Exemple de code
.banniere {
  color: #ffffff;
  background-color: #17324d;
  background-image: linear-gradient(135deg, #17324d, #0f766e);
  background-size: cover;
  background-position: center;
}
c

Construire une palette cohérente et lisible

palettecontrastecohérencevariablesaccessibilité

Une palette efficace associe une couleur principale, une couleur secondaire, des couleurs neutres et, si nécessaire, une couleur d’alerte. Les variables CSS centralisent ces valeurs afin de les réutiliser et de les modifier facilement. Le contraste doit garantir la lisibilité.

Exemple de code
:root {
  --couleur-principale: #17324d;
  --couleur-secondaire: #0f766e;
  --couleur-fond: #f4f7fa;
  --couleur-texte: #1f2937;
  --couleur-alerte: #b91c1c;
}

body {
  color: var(--couleur-texte);
  background-color: var(--couleur-fond);
}
2

Mettre en forme les textes

a

Choisir la police et sa taille

typographiefamilletailleunitélisibilité

font-family définit la police et prévoit généralement plusieurs solutions de remplacement. font-size détermine la taille du texte. Les unités relatives comme rem facilitent une mise à l’échelle cohérente et respectent mieux les préférences de l’utilisateur.

Exemple de code
body {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1rem;
}

h1 { font-size: 2.25rem; }
h2 { font-size: 1.5rem; }
small { font-size: 0.875rem; }
b

Régler la graisse, le style et l’interligne

graisseitaliqueinterligneemphaseconfort

font-weight contrôle l’épaisseur des caractères, tandis que font-style permet notamment d’utiliser l’italique. line-height règle la hauteur des lignes et influence fortement le confort de lecture. Ces propriétés créent une hiérarchie sans multiplier les variations.

Exemple de code
h1, h2 {
  font-weight: 700;
}

.introduction {
  font-style: italic;
}

p {
  line-height: 1.6;
}
c

Contrôler l’alignement et la décoration du texte

alignementdécorationespacementcasselisibilité

text-align détermine l’alignement du texte. text-decoration ajoute ou retire notamment un soulignement, tandis que text-transform modifie visuellement la casse. Un texte long centré ou entièrement écrit en capitales devient rapidement difficile à lire.

Exemple de code
h1 { text-align: center; }

.surtitre {
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.ancien-tarif { text-decoration: line-through; }
a { text-decoration: underline; }
3

Différencier les éléments interactifs

a

Mettre en forme les liens et leurs différents états

lienétatvisitésurvolinteraction

Les liens doivent rester reconnaissables comme des éléments interactifs. Les pseudo-classes :link, :visited, :hover et :active modifient leur apparence selon leur état. Les changements ne doivent pas reposer exclusivement sur la couleur.

Exemple de code
a:link { color: #0369a1; }
a:visited { color: #6b21a8; }

a:hover {
  color: #0f766e;
  text-decoration-thickness: 3px;
}

a:active { color: #b91c1c; }
b

Styliser les boutons du formulaire

boutonactioncontrastebordurecurseur

Un bouton doit être visible et indiquer clairement l’action déclenchée. Sa couleur, ses dimensions, son espacement interne et son libellé contribuent à cette compréhension. cursor: pointer peut renforcer l’indication, sans remplacer l’utilisation d’un véritable élément button.

Exemple de code
<button type="submit">Valider mon inscription</button>

button {
  padding: 0.75rem 1.25rem;
  color: #ffffff;
  background-color: #0f766e;
  border: 0;
  border-radius: 0.5rem;
  font-weight: 700;
  cursor: pointer;
}
c

Utiliser :hover, :focus et :checked

pseudo-classesurvolfocussélectionaccessibilité

Les pseudo-classes représentent un état particulier. :hover réagit au passage du pointeur, :focus signale l’élément actif au clavier et :checked cible une case ou un bouton radio sélectionné. Le focus ne doit jamais être supprimé sans indicateur de remplacement.

Exemple de code
button:hover { background-color: #115e59; }

input:focus,
select:focus,
textarea:focus {
  outline: 3px solid #38bdf8;
  outline-offset: 2px;
}

input[type="checkbox"]:checked + label {
  color: #0f766e;
  font-weight: bold;
}
2

Fil rouge — Créer l’identité visuelle

20 minutes · Binômes · Page du chapitre 2

Mission

Construisez l’identité graphique de la page d’inscription sans organiser encore les contenus en colonnes.

Consignes

  1. Définissez une palette de trois ou quatre couleurs avec des variables.
  2. Créez une hiérarchie typographique pour les titres, textes et informations secondaires.
  3. Différenciez la navigation, les liens et le bouton principal.
  4. Ajoutez des états visibles au survol et au clavier.
  5. Vérifiez la lisibilité des textes et la cohérence des couleurs.
Livrable : une page dotée d’une palette cohérente, d’une hiérarchie typographique et d’éléments interactifs clairement identifiables.
III

Maîtriser les dimensions et le modèle de boîte

1

Comprendre l’espace occupé par un élément

a

Distinguer contenu, remplissage, bordure et marge

contenupaddingborduremarginboîte

Le navigateur représente chaque élément comme une boîte composée de quatre zones. Le contenu occupe la partie centrale, le padding crée un espace intérieur, la bordure entoure cet espace et la marge éloigne la boîte des éléments voisins.

Exemple de code
.carte {
  width: 300px;              /* contenu */
  padding: 20px;             /* espace intérieur */
  border: 2px solid #0f766e;
  margin: 30px;              /* espace extérieur */
}
b

Régler les dimensions avec width et height

largeurhauteurmaximumminimumadaptation

width et height fixent les dimensions d’un élément. Leurs variantes max- et min- définissent des limites. Pour les contenus textuels, il est souvent préférable de limiter la largeur tout en laissant la hauteur s’adapter automatiquement.

Exemple de code
main {
  width: 90%;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}

img {
  max-width: 100%;
  height: auto;
}
c

Simplifier les calculs avec box-sizing

calculdimension totaleborder-boxdébordementcohérence

Par défaut, la largeur déclarée correspond uniquement au contenu : le remplissage et la bordure s’y ajoutent. Avec box-sizing: border-box, ils sont inclus dans la dimension annoncée. Cette règle rend les dimensions plus prévisibles.

Exemple de code
*,
*::before,
*::after {
  box-sizing: border-box;
}

.carte {
  width: 300px;
  padding: 20px;
  border: 2px solid #0f766e;
}
2

Créer des blocs visuels cohérents

a

Définir les marges internes avec padding

espace intérieurrespirationcontenuraccourciconfort

Le padding crée une distance entre le contenu et les limites de sa boîte. Il améliore la lisibilité des cartes, boutons, champs et encadrés. Une valeur unique s’applique aux quatre côtés, tandis que deux valeurs distinguent les espacements verticaux et horizontaux.

Exemple de code
.information { padding: 1rem; }

button {
  padding: 0.75rem 1.25rem;
}

article {
  padding: 2rem 1.5rem;
}
b

Espacer les éléments avec margin

espace extérieurséparationrythmecentragevoisinage

La propriété margin crée un espace extérieur autour d’un élément. Elle sépare les titres, paragraphes et sections afin d’établir un rythme visuel. Les valeurs automatiques à gauche et à droite peuvent centrer un bloc dont la largeur est limitée.

Exemple de code
main {
  max-width: 1000px;
  margin: 0 auto;
}

section { margin-bottom: 3rem; }
h2 { margin: 0 0 1rem; }
p { margin-bottom: 1.25rem; }
c

Ajouter des bordures, des arrondis et des ombres

bordurearrondiombreprofondeurdélimitation

Les bordures délimitent les éléments, border-radius arrondit leurs angles et box-shadow crée un effet de profondeur. Ces propriétés aident à différencier des cartes ou des zones fonctionnelles, mais doivent rester cohérentes et modérées.

Exemple de code
.carte {
  background-color: #ffffff;
  border: 1px solid #dbe3ea;
  border-radius: 0.75rem;
  box-shadow: 0 4px 12px rgba(23, 50, 77, 0.12);
}

.alerte {
  border-left: 5px solid #b91c1c;
}
3

Finaliser et contrôler la feuille de style

a

Transformer les contenus en cartes et en encadrés

carteencadréregroupementhiérarchiecomposant

Une carte rassemble des contenus appartenant à un même ensemble visuel, tandis qu’un encadré met en évidence une information particulière. Les classes permettent de réutiliser ces composants sans dupliquer les règles CSS.

Exemple de code
<article class="carte">
  <h3>Atelier HTML et CSS</h3>
  <p>Une initiation pratique destinée aux débutants.</p>
  <a href="#inscription">S’inscrire</a>
</article>

.carte {
  padding: 1.5rem;
  background: #ffffff;
  border-radius: 0.75rem;
  box-shadow: 0 4px 12px rgba(23, 50, 77, 0.12);
}
b

Harmoniser les espacements et les dimensions

harmonierythmeéchellerégularitécohérence

Une page paraît cohérente lorsque ses espacements et dimensions suivent une logique constante. Il est préférable de réutiliser un nombre limité de valeurs plutôt que de choisir une marge différente pour chaque élément. Des variables CSS peuvent constituer une échelle commune.

Exemple de code
:root {
  --espace-xs: 0.5rem;
  --espace-s: 1rem;
  --espace-m: 1.5rem;
  --espace-l: 2rem;
  --espace-xl: 3rem;
}

section { margin-bottom: var(--espace-xl); }
.carte { padding: var(--espace-m); }
h2 { margin-bottom: var(--espace-s); }
c

Inspecter, corriger et organiser le fichier CSS

inspecteurrèglecorrectioncommentaireorganisation

L’inspecteur indique les règles appliquées, héritées ou remplacées et permet de tester temporairement de nouvelles valeurs. La feuille CSS doit ensuite être corrigée dans son fichier d’origine et organisée par grandes catégories clairement identifiables.

Exemple de code
/* 1. Réglages généraux */
* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: Arial, sans-serif;
}

/* 2. Navigation */
nav a { color: #ffffff; }

/* 3. Composants */
.carte {
  padding: 1.5rem;
  background-color: #ffffff;
}
3

Finalisation — Habiller la page complète

20 minutes · Reprise du fil rouge · Contrôle final

Mission

Finalisez la page en appliquant le modèle de boîte aux principales zones de contenu.

Consignes

  1. Limitez et centrez la largeur du contenu principal.
  2. Transformez le programme, le formulaire et la FAQ en blocs visuels.
  3. Harmonisez les marges internes et externes.
  4. Ajoutez des bordures, des arrondis ou des ombres avec modération.
  5. Appliquez box-sizing: border-box et vérifiez les dimensions.
  6. Organisez la feuille CSS et corrigez-la avec l’inspecteur.
Livrable : les fichiers inscription.html et style.css, structurés, lisibles et prêts pour la mise en page avec Flexbox et Grid au chapitre 4.