Les sélecteurs CSS – Guide complet

📗 Chapitre 1 : Sélecteurs de base

1 Sélecteur Universel *

📖 Définition : Sélectionne TOUS les éléments de la page.

* {
    margin: 0;
    padding: 0;
    border: 1px dashed #3498db;
}

Titre

Paragraphe

Texte
💡 Utile pour réinitialiser les marges par défaut des navigateurs.

2 Sélecteur de Type p, h1, div...

📖 Définition : Sélectionne toutes les balises du même type.

p {
    color: #e74c3c;
    font-weight: bold;
}

Paragraphe 1 (rouge gras)

Paragraphe 2 (rouge gras)

Span - pas affecté

3 Sélecteur de Classe .nom

📖 Définition : Sélectionne les éléments avec une classe spécifique.

.highlight {
    background: #f9e79f;
    padding: 10px;
    border-radius: 8px;
}

Texte surligné !

Texte normal

Encore surligné !

4 Sélecteur d'ID #nom

📖 Définition : Sélectionne un élément unique par son identifiant.

#unique {
    background: #2c3e66;
    color: white;
    padding: 15px;
    border-radius: 8px;
}
🎯 Je suis l'élément unique avec ID !
⚠️ Un ID doit être unique dans la page.

5 Sélecteur d'Attribut [attr]

📖 Définition : Sélectionne selon la présence ou la valeur d'un attribut HTML.

input[type="text"] {
    border: 2px solid #3498db;
    padding: 8px;
    border-radius: 6px;
}
input[type="password"] {
    border: 2px solid #e74c3c;
    padding: 8px;
    border-radius: 6px;
}

Texte :

Password :

📘 Chapitre 2 : Combinaisons

6 Descendant A B (espace)

📖 Définition : Sélectionne tous les B à l'intérieur de A (à n'importe quelle profondeur).

div p {
    background: #d4f1f9;
    padding: 5px;
}
✓ Enfant direct
✓ Petit-enfant (aussi ciblé)

7 Enfant Direct A > B

📖 Définition : Sélectionne uniquement les enfants directs (pas les petits-enfants).

div > p {
    background: #fdebd0;
    padding: 5px;
}

✓ Enfant direct

✗ Petit-enfant (pas ciblé)

8 Frère Adjacent A + B

📖 Définition : Sélectionne l'élément immédiatement après A.

h4 + p {
    color: #e74c3c;
    font-weight: bold;
}

Titre H4

✓ Je suis juste après

✗ Je suis le 2ème paragraphe

9 Frères Généraux A ~ B

📖 Définition : Sélectionne tous les frères B qui suivent A.

h4 ~ p {
    background: #d5f5e3;
    padding: 5px;
}

Titre H4

✓ Paragraphe 1

✓ Paragraphe 2

✓ Paragraphe 3

10 Groupé A, B, C

📖 Définition : Applique le même style à plusieurs sélecteurs.

h3, h4, p {
    color: #8e44ad;
    font-style: italic;
}

Titre H3

Titre H4

Paragraphe

💡 Évite la répétition de code !

📙 Chapitre 3 : Pseudo-classes (État)

11 Survol :hover

📖 Définition : Style appliqué quand la souris survole l'élément.

button:hover {
    background: #e74c3c;
    transform: scale(1.05);
}

12 Focus :focus

📖 Définition : Style appliqué quand l'élément reçoit le focus (clic ou Tab).

input:focus {
    border-color: #2ecc71;
    outline: none;
    box-shadow: 0 0 5px #2ecc71;
}

13 Actif :active

📖 Définition : Style appliqué au moment du clic.

button:active {
    transform: scale(0.95);
}

14 Premier Enfant :first-child

📖 Définition : Sélectionne le premier enfant d'un parent.

li:first-child {
    background: #2ecc71;
    color: white;
}
  • 🥇 Premier item
  • Item 2
  • Item 3

15 Dernier Enfant :last-child

📖 Définition : Sélectionne le dernier enfant d'un parent.

li:last-child {
    background: #e74c3c;
    color: white;
}
  • Item 1
  • Item 2
  • 🔴 Dernier item

📒 Chapitre 4 : Pseudo-classes avancées

16 Nième Enfant :nth-childNo

📖 Définition : Sélectionne l'enfant numéro n (ou pairs/impairs).

li:nth-child(odd) { background: #d4f1f9; }
li:nth-child(even) { background: #fdebd0; }
  • 1. Impair (bleu)
  • 2. Pair (rose)
  • 3. Impair (bleu)
  • 4. Pair (rose)
  • 5. Impair (bleu)

17 Négation :not()

📖 Définition : Sélectionne TOUS les éléments SAUF ceux spécifiés.

li:not(.special) {
    color: #95a5a6;
}
  • Item normal (gris)
  • ⭐ Item spécial (rouge)
  • Item normal (gris)

18 Coché :checked

📖 Définition : Sélectionne les cases à cocher ou boutons radio cochés.

input:checked + label {
    color: #2ecc71;
    text-decoration: line-through;
}

19 Désactivé :disabled

📖 Définition : Sélectionne les champs désactivés.

input:disabled {
    background: #ecf0f1;
    cursor: not-allowed;
}

20 Obligatoire :required

📖 Définition : Sélectionne les champs obligatoires.

input:required {
    border-left: 3px solid #e74c3c;
}

📕 Chapitre 5 : Pseudo-éléments

21 Avant ::before

📖 Définition : Ajoute du contenu AVANT l'élément.

p::before {
    content: "👉 ";
}

👉 Premier paragraphe

👉 Deuxième paragraphe

22 Après ::after

📖 Définition : Ajoute du contenu APRÈS l'élément.

a::after {
    content: " 🔗";
}

23 Première Lettre ::first-letter

📖 Définition : Style la première lettre du texte.

p::first-letter {
    font-size: 3em;
    color: #e74c3c;
    float: left;
    margin-right: 5px;
}

La première lettre de ce paragraphe est plus grande et rouge.

24 Première Ligne ::first-line

📖 Définition : Style la première ligne du texte.

p::first-line {
    font-weight: bold;
    color: #2c3e66;
}

Ceci est la première ligne.
Ceci est la deuxième ligne (non stylisée).

25 Sélection ::selection

📖 Définition : Style le texte sélectionné par l'utilisateur.

p::selection {
    background: #f1c40f;
    color: black;
}

👆 Sélectionne ce texte avec ta souris pour voir le fond jaune !

📝 Résumé - Hiérarchie des sélecteurs

Type Sélecteur Exemple Priorité
Universel * * { margin:0; } Faible
Type élément p { color:red; } Faible
Classe .classe .important { } Moyenne
ID #id #header { } Forte
Attribut [attr] input[type="text"] Moyenne
Pseudo-classe :pseudo a:hover { } Moyenne
Pseudo-élément ::pseudo p::before { } Moyenne

Last modified: Monday, 15 June 2026, 5:59 PM