Med Learning
  • Accueil
  • Cours
  • Formation OFPPT
  • Roadmaps
  • Projets
  • Articles
  • Contact
Med Learning

La plateforme d’apprentissage structurée pour les étudiants OFPPT et les autodidactes.

  • medlearning905@gmail.com
  • 06 87 49 76 05
  • @medle_arning

Navigation

  • Accueil
  • Cours
  • Roadmaps
  • Projets pratiques
  • Classement
  • Articles
  • Contact

Formation OFPPT

  • 1ère année
  • 2ème année
  • Filière Full Stack
  • Filière Mobile
  • Cours, TP, EFM et EFF

Mon compte

  • Connexion
  • Créer un compte
  • Mon espace
  • Mot de passe oublié

Med Learning a été créé par Anas Mounchit à la mémoire de son frère Mohammed Maadallah. Ce site est une sadaqa jariya pour lui : chaque leçon apprise ici, chaque ligne de code écrite, est une bonne action qui continue de l’accompagner.

Si Med Learning t’a aidé, pense à lui dans tes prières.

Qu’Allah lui accorde Sa miséricorde et l’accueille dans Son vaste paradis. رحمه الله

© 2026 Med Learning — Fait au Maroc, pour les étudiants.

ConfidentialitéContact & FAQ
Retour au cours

CSS de A à Z : du style à la mise en page responsive

Crée un compte pour sauvegarder ta progression.

  • 1.1 Introduction au CSS
  • 1.2 Les sélecteurs
  • 1.3 Cascade, héritage et spécificité
  • 1.4 Couleurs et unités
  • 1.5 Le texte et la typographie
  • 1.6 Le modèle de boîte
CoursCSS de A à Z : du style à la mise en page responsiveModule 1
02

Module 1Les bases du CSS

Chapitre 2 sur 15

Les sélecteurs

Cibler n'importe quel élément : classes, combinateurs, attributs, pseudo-classes et pseudo-éléments.

  • ≈ 135 min
  • 5 leçons
  • 4 vidéos
  • 3 exercices
  • TP

Objectifs

Avec ce chapitre, tu sauras…

  • cibler des éléments par type, classe et identifiant ;
  • utiliser le sélecteur universel et grouper des sélecteurs ;
  • combiner des sélecteurs : descendant, enfant, frère ;
  • cibler par attribut ([type="email"], [href$=".pdf"]) ;
  • utiliser les pseudo-classes (:hover, :focus, :nth-child(), :not()) ;
  • créer du contenu décoratif avec les pseudo-éléments ::before et ::after.

Le sélecteur est la moitié de chaque règle CSS : si tu ne sais pas cibler précisément un élément, tu ne pourras pas le styliser. Ce chapitre te donne tous les sélecteurs utilisés au quotidien, du plus simple au plus puissant.

Au programme

  1. Objectifs
  2. 1.Les sélecteurs simples
  3. 2.Les combinateurs
  4. 3.Les sélecteurs d'attribut
  5. 4.Les pseudo-classes
  6. 5.Les pseudo-éléments
  7. Les liens intelligents
  8. Exercices corrigés
  9. L'essentiel
1

Leçon 1

Les sélecteurs simples

Tableau: Les cinq sélecteurs de base

SélecteurSyntaxeCibleExemple
de typeptous les éléments <p>h2 { color: navy; }
de classe.nomtous les éléments avec class="nom".prix { font-weight: bold; }
d'identifiant#noml'élément unique avec id="nom"#contact { padding: 20px; }
universel*tous les éléments* { box-sizing: border-box; }
groupementa, bles éléments de a et ceux de bh1, h2, h3 { font-family: Georgia; }
Le HTML
html
<h2>Nos offres</h2>
<p class="intro">Trois formules adaptées à tes besoins.</p>
<p class="prix promo">À partir de 99 DH</p>
<p id="mention">Offre valable jusqu'au 31 décembre.</p>
Le CSS
css
h2 { color: #17306e; }             /* tous les h2 */
.intro { font-style: italic; }      /* class="intro" */
.prix { font-weight: bold; }        /* class contenant "prix" */
.promo { color: #c0392b; }          /* class contenant "promo" */
.prix.promo { font-size: 20px; }    /* les DEUX classes à la fois */
#mention { font-size: 12px; }       /* id="mention" */
preview
html
<h2 style="color:#17306e">Nos offres</h2>
<p style="font-style:italic">Trois formules adaptées à tes besoins.</p>
<p style="font-weight:bold;color:#c0392b;font-size:13pt">À partir de 99 DH</p>
<p style="font-size:8pt">Offre valable jusqu'au 31 décembre.</p>
Ce que tu vois dans le navigateur

Piège classique

`.prix.promo` et `.prix .promo`

Un espace change tout. .prix.promo (collé) cible un élément qui a les deux classes. .prix .promo (avec espace) cible un élément .promo situé à l'intérieur d'un élément .prix. C'est une des erreurs les plus fréquentes.

À savoir

Classe ou identifiant ?

En CSS, utilise presque toujours des classes : elles sont réutilisables et n'ont pas une priorité écrasante (tu verras pourquoi au chapitre 3). Garde les id pour les ancres et JavaScript.

Vidéo · À regarder

FR

Formation CSS, tuto complet pour démarrer

L'instant Code · YouTube

Regarde de 3:00 à 7:234 min 23 s
Ouvrir sur YouTube à 3:00

Les sélecteurs dans la formation de L'instant Code. Après le segment, vérifie que tu sais écrire chacun des cinq sélecteurs du tableau sans regarder.

2

Leçon 2

Les combinateurs

Les combinateurs ciblent un élément selon sa position par rapport à un autre.

Tableau: Les quatre combinateurs

CombinateurSyntaxeCible
descendantnav atous les a à l'intérieur de nav, à n'importe quelle profondeur
enfant directul > liles li directement dans un ul (premier niveau seulement)
frère adjacenth2 + ple p qui suit immédiatement un h2
frères suivantsh2 ~ ptous les p qui suivent un h2, avec le même parent
Les combinateurs en action
css
nav a { text-decoration: none; }        /* les liens du menu */
.menu > li { display: inline-block; }   /* seulement le premier niveau du menu */
h2 + p { font-size: 1.2em; }            /* le chapeau sous chaque titre */
.erreur ~ .aide { color: red; }         /* les aides qui suivent une erreur */

Intuition

Lire un sélecteur de droite à gauche

Un sélecteur se lit de droite à gauche : nav ul li a signifie « les liens, qui sont dans un li, dans un ul, dans un nav ». L'élément ciblé est toujours le dernier du sélecteur. Le navigateur, lui aussi, le lit dans ce sens.

3

Leçon 3

Les sélecteurs d'attribut

Tableau: Cibler selon un attribut

SélecteurCibleExemple d'usage
[attr]possède l'attributinput[required] : champs obligatoires
[attr="v"]valeur exacteinput[type="email"]
[attr^="v"]valeur qui commence par va[href^="https"] : liens externes
[attr$="v"]valeur qui finit par va[href$=".pdf"] : liens vers un PDF
[attr*="v"]valeur qui contient va[href*="youtube"]
Styliser les champs et les liens selon leurs attributs
css
input[type="text"],
input[type="email"] {
  border: 1px solid #b9c2d3;
  padding: 8px;
}

a[href$=".pdf"] {
  color: #c0392b;
  font-weight: bold;
}
4

Leçon 4

Les pseudo-classes

Une pseudo-classe cible un élément dans un état particulier ou à une position particulière. Elle s'écrit avec un deux-points : a:hover.

Tableau: Les pseudo-classes d'état

Pseudo-classeQuand ?
:hoverla souris survole l'élément
:focusl'élément a le focus (champ sélectionné, lien atteint au clavier)
:focus-visiblele focus vient du clavier (pour un contour visible sans gêner les clics souris)
:activel'élément est en train d'être cliqué
:visitedlien déjà visité
:checkedcase ou bouton radio coché
:disabledchamp désactivé
:invalid / :validchamp invalide / valide selon la validation HTML

Tableau: Les pseudo-classes de position

Pseudo-classeCible
:first-child / :last-childle premier / dernier enfant de son parent
:nth-child(3)le 3e enfant
:nth-child(2n) ou :nth-child(even)les enfants pairs
:nth-child(2n+1) ou :nth-child(odd)les enfants impairs
:not(.actif)tout sauf les éléments .actif
Des boutons et un tableau zébré
css
.bouton {
  background-color: #2f5bc4;
  color: white;
}
.bouton:hover {
  background-color: #17306e;      /* plus foncé au survol */
}
.bouton:focus-visible {
  outline: 3px solid #f5b400;     /* contour visible au clavier */
}

tbody tr:nth-child(even) {
  background-color: #f2f5fb;      /* une ligne sur deux */
}

li:not(:last-child) {
  border-bottom: 1px solid #ddd;  /* un séparateur, sauf après le dernier */
}

Piège classique

L'ordre des pseudo-classes des liens

Pour les liens, respecte l'ordre :link, :visited, :hover, :active (moyen mnémotechnique : LoVe HAte). Sinon, à cause de la cascade (chapitre 3), ton :hover peut ne jamais s'appliquer aux liens déjà visités.

Piège classique

Supprimer le contour de focus

:focus { outline: none; } rend ton site inutilisable au clavier : on ne voit plus où l'on se trouve. Si le contour par défaut te déplaît, remplace-le par un autre style visible (avec :focus-visible), ne le supprime jamais.

5

Leçon 5

Les pseudo-éléments

Un pseudo-élément cible une partie d'un élément, ou crée un élément virtuel. Il s'écrit avec deux deux-points : p::first-line.

Tableau: Les pseudo-éléments à connaître

Pseudo-élémentCible
::beforeun contenu inséré au début de l'élément (avec content)
::afterun contenu inséré à la fin de l'élément (avec content)
::first-letterla première lettre (lettrine)
::first-linela première ligne
::placeholderle texte d'exemple d'un champ
::selectionle texte sélectionné par l'utilisateur
::markerla puce ou le numéro d'un li
Des pseudo-éléments décoratifs
css
.article p::first-letter {
  font-size: 2.5em;
  float: left;
  color: #2f5bc4;
}

a[href$=".pdf"]::after {
  content: " (PDF)";
  font-size: 0.8em;
  color: #888;
}

.citation::before {
  content: "« ";
}
.citation::after {
  content: " »";
}
preview
html
<p><span style="font-size:24pt;float:left;color:#2f5bc4;line-height:1;margin-right:3px">L</span>a lettrine est créée avec <code>::first-letter</code> : la première lettre du paragraphe est agrandie, colorée et placée à gauche, comme dans les livres anciens. Le reste du texte s'écoule autour.</p>
<p>Télécharger <a href="#">le programme</a><span style="font-size:7pt;color:#888"> (PDF)</span> · <span>« La citation est entourée de guillemets générés »</span></p>
Ce que tu vois dans le navigateur

Règle

La propriété content

::before et ::after n'apparaissent que si la propriété content est définie, même vide : content: "";. Le contenu généré est décoratif : il n'est pas sélectionnable et peut être ignoré par les lecteurs d'écran. Ne mets jamais une information importante dans content.

Vidéo · À regarder

FR

Formation CSS, tuto complet pour démarrer

L'instant Code · YouTube

Regarde de 29:59 à 35:405 min 41 s
Ouvrir sur YouTube à 29:59

Les pseudo-éléments et les pseudo-classes. Reproduis chaque exemple de la vidéo, puis teste :hover sur un bouton de ta page.

Vidéo · À regarder

EN

CSS Full Course for Beginners | Complete All-in-One Tutorial | 11 Hours

Dave Gray · YouTube

Regarde de 6:32:54 à 6:52:2919 min 35 s
Ouvrir sur YouTube à 6:32:54

Le chapitre « Pseudo » de Dave Gray (anglais) : vingt minutes sur les pseudo-classes et pseudo-éléments, pour aller plus loin.

Vidéo · À regarder

EN

CSS Full Course for Beginners | Complete All-in-One Tutorial | 11 Hours

Dave Gray · YouTube

Regarde de 14:23 à 34:1419 min 51 s
Ouvrir sur YouTube à 14:23

Le chapitre « Selectors » de Dave Gray (anglais) : révision des sélecteurs avec d'autres exemples.

Travaux pratiques

Les liens intelligents

Sans modifier le HTML, fais en sorte que : les liens externes (https) soient suivis d'une flèche « ↗ », les liens vers un PDF soient précédés de « [PDF] », et les liens mailto: soient en italique.

Exercices

Exercice 2.1

Choisis la bonne réponse

  1. 1Quel sélecteur cible les éléments class="carte" ?

  2. 2nav > a cible les liens…

  3. 3.btn.primaire cible…

  4. 4Pour les lignes impaires d'un tableau :

  5. 5::before ne s'affiche que si on définit…

  6. 6Quel sélecteur cible les liens qui finissent par .pdf ?

0/6 répondues
Exercice 2.2

Écris le sélecteur

Écris le sélecteur qui cible : (a) tous les paragraphes et toutes les listes ; (b) les liens situés dans le footer ; (c) le premier li de chaque liste ; (d) les champs input obligatoires ; (e) le paragraphe qui suit immédiatement chaque h3 ; (f) les liens qui commencent par mailto: ; (g) tous les li sauf ceux qui ont la classe actif ; (h) un bouton .envoyer survolé.

Exercice 2.3

Le tableau zébré

Reprends le bulletin de notes (exercice 9.2 de la formation HTML). Écris le CSS pour : un en-tête à fond bleu foncé et texte blanc, une ligne sur deux du corps à fond gris clair, une ligne qui change de couleur au survol, et le pied du tableau en gras.

L'essentiel du chapitre

À retenir

  • p (type) · .classe · #id · * (tous) · a, b (groupement).
  • A B descendant · A > B enfant direct · A + B frère suivant immédiat · A ~ B frères suivants.
  • .a.b = les deux classes sur le même élément ; .a .b = .b dans .a.
  • Attributs : [attr="v"], ^= commence, $= finit, *= contient.
  • Pseudo-classes (:) : :hover, :focus-visible, :nth-child(), :not(). Pseudo-éléments (::) : ::before, ::after avec content.
  • Ne supprime jamais le contour de focus sans le remplacer.
Inscris-toi pour suivre ta progression →
Chapitre précédentIntroduction au CSSChapitre suivantCascade, héritage et spécificité

Sur cette page

  1. Objectifs
  2. 1.Les sélecteurs simples
  3. 2.Les combinateurs
  4. 3.Les sélecteurs d'attribut
  5. 4.Les pseudo-classes
  6. 5.Les pseudo-éléments
  7. Les liens intelligents
  8. Exercices corrigés
  9. L'essentiel