Cascade, spécificité et layers : comprendre les règles qui pilotent votre CSS
Problème de lecture
Cette vidéo ne semble pas disponible
00:00
00:00
Sous-titres non disponibles

Cascade, spécificité et layers : comprendre les règles qui pilotent votre CSS

Carl Brison
Vente flash ! -25%
14,95€19,95€
klarna-condensed
Acheter maintenant, payer plus tard. En savoir plus

Téléchargement & visionnage illimité

Satisfait ou remboursé

Paiement 100% sécurisé

Vous ajoutez une classe .promo en rouge sur un lien. Vous rechargez. Rien ne bouge. Le lien reste bleu. Vous relisez trois fois votre feuille de style, tout semble correct, et pourtant le navigateur ignore votre déclaration. Ce n'est pas un bug. C'est une règle. Et tant que vous ne connaissez pas cette règle, vous continuerez à empiler des sélecteurs de plus en plus longs, puis des !important, jusqu'à obtenir une feuille de style que plus personne n'ose toucher.

Ce cours de 1h45 vous rend le contrôle. Vous allez comprendre exactement comment le navigateur décide quelle propriété l'emporte, et comment écrire un CSS où cette décision devient prévisible.

Ce que vous allez comprendre, démonstration à l'appui

  • La cascade : pourquoi la dernière déclaration gagne parfois, et pourquoi très souvent elle ne gagne pas du tout
  • L'héritage : quelles propriétés se transmettent aux enfants (color, font-family, line-height) et lesquelles restent bloquées sur l'élément (margin, padding, border)
  • La spécificité : le système de points appliqué par le navigateur, élément à 1, classe, attribut et pseudo-classe à 10, identifiant à 100, et surtout comment ces points s'additionnent sur un sélecteur composé
  • La valeur !important : pourquoi elle fonctionne, pourquoi elle reste malgré tout un symptôme, et le cas précis où elle devient légitime
  • La pseudo-classe :where() : le sélecteur dont la spécificité vaut zéro, et ce que cela change concrètement quand vous voulez surcharger un style plus tard
  • La règle @layer : déclarer vos propres couches reset, base, components et utilities, et fixer vous-même l'ordre de priorité, indépendamment du poids des sélecteurs et de leur position dans le fichier

Un cas pratique complet, du HTML au CSS en couches

La seconde moitié du cours est une mise en application intégrale : une carte produit e-commerce construite de zéro.
Vous posez d'abord le HTML, puis vous le nommez avec une convention de composant (préfixe du bloc, double underscore pour les éléments, double tiret pour les variantes), avant d'y ajouter les attributs d'accessibilité : aria-labelledby reliant l'article à son titre, role="group" et aria-label sur la zone des boutons.
Vient ensuite le CSS, entièrement organisé en couches. Le layer reset neutralise les marges et harmonise les polices des éléments de formulaire, le tout emballé dans :where() pour rester à poids zéro. Le layer base gère le body. Le layer components accueille le conteneur, la carte produit et les boutons avec leur variante, leur état hover, leur état actif, leurs transitions et un focus visible soigné. Le layer utilities reste volontairement vide, et Carl Brison explique précisément pourquoi il le déclare quand même.
Une fiche récapitulative et les fichiers de l'exercice sont fournis.

À qui s'adresse ce cours

Aux développeurs front-end, intégrateurs et webdesigners techniques qui écrivent déjà du CSS au quotidien et qui butent sur sa maintenabilité. Vous devez connaître les sélecteurs de base et savoir styliser une page. Vous n'avez besoin d'aucune connaissance préalable de @layer ni de :where().
Ce cours n'apprend pas le CSS. Il apprend comment le CSS décide.

Votre formateur

Carl Brison est technicien supérieur en multimédia depuis le début des années 2000 et créateur de nombreux sites professionnels, dont deux imprimeries en ligne. Auteur d'ouvrages informatiques publiés aux Éditions Ellipses, il est formateur certifié sur Tuto.com et intervient comme mentor sur la formation Développeur Web Front-End éligible au CPF. Sa méthode ici : chaque règle est prouvée en direct dans le navigateur, en déplaçant les déclarations et en montrant ce qui change à l'écran.

Ce cours et la suite du parcours

C'est le premier volet de la série CSS moderne. Le suivant approfondit la convention de nommage effleurée dans l'exercice et pousse la logique de composant plus loin.
Pour compléter vos fondations, le bundle HTML sémantique, accessibilité et SEO technique pose le socle en amont, et les fondamentaux des attributs ARIA détaillent l'accessibilité abordée ici en surface. Côté mise en page, le bundle CSS Grid moderne 2026 et le projet layout ultra-moderne de A à Z prolongent directement le travail sur les composants.
Vous voulez tester l'approche du formateur avant d'acheter ? Deux tutos gratuits du même auteur : le nesting CSS natif et la pseudo-classe nth-child en 5 minutes. L'ensemble du catalogue est sur la page tuto CSS.

Qu’allez-vous apprendre dans ce cours ?

Plan de cours
Chapitre 1
Les règles qui décident du style appliqué
Chapitre 2
Cas pratique : une carte produit structurée en layers
Chapitre 3
La suite du parcours CSS moderne

Table des matières

Chapitre 1 : Les règles qui décident du style appliqué
46m29
 
Leçon 1Cascade ou règle CSS : ce qui l'emporte vraiment
Leçon 2La cascade face aux sélecteurs élément, classe et ID
Leçon 3L'héritage : quelles propriétés passent aux enfants
Leçon 4La spécificité : le calcul de points du navigateur
Leçon 5!important : un symptôme plus qu'une solution
Leçon 6Sélecteurs à rallonge : quand la spécificité devient un piège
Leçon 7La pseudo-classe :where() et sa spécificité à zéro
Leçon 8:where() en situation : débloquer une classe ignorée
Leçon 9@layer : ordonner ses couches de styles
Chapitre 2 : Cas pratique : une carte produit structurée en layers
57m16
 
Leçon 1Poser le HTML de la carte produit
Leçon 2Nommer ses classes en logique de composant
Leçon 3Accessibilité : aria-labelledby, role group et aria-label
Leçon 4Déclarer l'ordre reset, base, components, utilities
Leçon 5Le layer reset : neutraliser sans spécificité avec :where()
Leçon 6Le layer base : les styles globaux du body
Leçon 7Layer components : boutons, variante, hover et focus visible
Leçon 8Layer components : mise en forme de la carte produit
Leçon 9À quoi sert le layer utilities laissé vide
Leçon 10Récapitulatif : cascade, héritage, spécificité, :where() et @layer
Chapitre 3 : La suite du parcours CSS moderne
01m24
 
Leçon 1Prochaine étape : la méthode BEM en pratique

Aperçus

Vos questions sur le cours

Que contient le fichier source ?

Le code source de l'exercice + Une fiche récapitulative du cours.

Pourquoi ma classe CSS ne s'applique-t-elle pas ?

Dans la très grande majorité des cas, un autre sélecteur pèse plus lourd. Le navigateur attribue un score à chaque sélecteur : 1 pour un élément, 10 pour une classe, un attribut ou une pseudo-classe, 100 pour un identifiant. Un sélecteur composé additionne ces valeurs. Une classe seule vaut 10, elle perd donc face à un sélecteur .contenu a qui vaut 11, quelle que soit sa position dans le fichier. Le cours détaille ce calcul et montre comment le neutraliser avec :where().

Quelle est la différence entre la cascade et la spécificité en CSS ?

La cascade est la règle de position : à poids égal, la dernière déclaration écrite l'emporte. La spécificité est la règle de poids : elle compare la force des sélecteurs et prime sur la cascade. Concrètement, déplacer une déclaration ne change rien si son sélecteur est moins spécifique que le concurrent. Le cours le démontre en direct, en déplaçant les blocs dans la feuille de style.

À quoi sert la pseudo-classe :where() en CSS ?

:where() ramène à zéro la spécificité du sélecteur qu'elle enveloppe, même s'il est long et composé. Vous conservez le ciblage exact, mais vous supprimez son poids. Une simple classe ajoutée plus tard suffit alors à surcharger le style, sans avoir à rallonger le sélecteur ni à sortir un !important. C'est le levier principal pour écrire un reset ou des styles de base réellement surchargeables.

Comment fonctionne la règle @layer en CSS ?

@layer permet de déclarer vos propres couches de styles et d'en fixer l'ordre de priorité. Une déclaration d'ouverture du type @layer reset, base, components, utilities; établit que utilities l'emporte sur components, qui l'emporte sur base, qui l'emporte sur reset. Ensuite, peu importe la spécificité des sélecteurs ou leur emplacement dans le fichier : c'est l'ordre des couches qui tranche. Le cours construit ces quatre layers sur un composant complet.

Faut-il éviter !important en CSS ?

!important fonctionne, mais son usage régulier signale surtout qu'on ne maîtrise plus le poids de ses sélecteurs. Une feuille de style qui en dépend devient un château de cartes. Il reste des cas légitimes, notamment pour garantir un outline de focus à des fins d'accessibilité. La bonne démarche consiste à comprendre le scoring des sélecteurs, puis à réserver !important à l'exception.

Quel niveau faut-il pour suivre ce cours ?

Un niveau intermédiaire. Vous devez savoir écrire des sélecteurs et styliser une page : ce cours n'enseigne pas les bases du CSS. En revanche, aucune connaissance préalable de :where() ou de @layer n'est nécessaire, ils sont introduits de zéro. La partie pratique reprend aussi du HTML sémantique et des attributs ARIA, expliqués au fil de l'exercice.

Payer plus tard

Prix d'achat : 14,95 €
Pour payer plus tard, sélectionnez Klarna comme moyen de paiement lors du règlement.

Ajoutez des articles à votre panier

Sélectionnez Klarna lors du règlement

Recevez une autorisation

Payez dans 30 jours

Klarna : conditions d'utilisation du paiement différé.

Attendez ! 🤗

Accédez à plus de 1416 tutos gratuits

Notre politique de protection des données