0Pricing
CSS Academy · Leçon

Imbrication CSS native

Écrivez des règles CSS imbriquées sans préprocesseur grâce à la spécification native de l’imbrication CSS.

Imbrication CSS native est une leçon CSS Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage CSS Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours CSS Academy comprend 4 leçons au total.

Qu'est-ce que l'imbrication CSS ?

L'imbrication CSS native (référence de compatibilité 2024, tous les navigateurs modernes) permet d'écrire des règles CSS à l'intérieur d'autres règles, en reprenant la syntaxe d'imbrication auparavant disponible uniquement dans les préprocesseurs Sass et Less. Les règles imbriquées héritent automatiquement du contexte du sélecteur parent.

Syntaxe d'imbrication de base

Écrivez les sélecteurs enfants à l'intérieur du bloc de règle parent. Le navigateur combine automatiquement les sélecteurs parent et enfant. Le sélecteur & (sélecteur d'imbrication) fait explicitement référence au sélecteur parent pour les modificateurs et les pseudo-classes.

<div class="card is-active">
  <div class="title">Nested Card Title</div>
  <p>Card body text.</p>
</div>

Le sélecteur d'imbrication &

& représente explicitement le sélecteur parent dans les règles imbriquées. Utilisez-le pour les pseudo-classes (&:hover), les pseudo-éléments (&::before), les classes de modification (&.active) et les sélecteurs d'attributs (&[disabled]). Sans &, les règles imbriquées créent des sélecteurs descendants.

Imbrication des pseudo-éléments

Imbriquez naturellement les règles des pseudo-éléments à l'intérieur du parent : .button { &::before { content: ""; } &::after { content: ""; } }. Tous les styles du bouton sont ainsi regroupés, ce qui évite de répéter le sélecteur comme il faudrait le faire avec du CSS à plat.

Imbrication des règles @

Les requêtes média et les autres règles @ peuvent être imbriquées dans des règles (Chrome 112+, Firefox 117+) : .card { padding: 1rem; @media (min-width: 768px) { padding: 2rem; } }. Les styles adaptatifs restent associés à l'élément qu'ils modifient au lieu de se trouver dans un bloc de requête média distinct à la fin du fichier.

Spécificité des sélecteurs

L'imbrication ne modifie pas les règles de spécificité : le sélecteur combiné possède la même spécificité que s'il était écrit à plat. .card .title, qu'il soit écrit avec ou sans imbrication, a la même spécificité (0,2,0). L'imbrication est une commodité syntaxique, pas une modification de la spécificité.

Descendant implicite ou & explicite

Un sélecteur imbriqué sans & crée un sélecteur descendant : .card { .title {} } devient .card .title. Avec & : .card { &.active {} } devient .card.active (sans espace : il s'agit d'une classe de modification, pas d'un descendant).

BEM avec l'imbrication native

L'imbrication native ne convient pas parfaitement à BEM : les sélecteurs .block__element et .block--modifier sont des chaînes de caractères, et l'imbrication ne peut pas les construire avec & בלבד. Utilisez l'imbrication pour les pseudo-classes et les structures de composants imbriquées plutôt que pour la concaténation de chaînes BEM, qui nécessite toujours un préprocesseur.

Migration depuis Sass

La plupart des syntaxes d'imbrication de Sass sont identiques à celle de l'imbrication CSS native. Exceptions : Sass autorise la concaténation de chaînes avec &-modifier, contrairement au CSS natif. Pour migrer, recherchez les motifs &- ou &__ et aplatissez ces règles particulières tout en conservant les autres imbrications.

Compatibilité des navigateurs

L'imbrication CSS native est prise en charge par Chrome 112+, Firefox 117+ et Safari 16.5+. Pour prendre en charge les anciens navigateurs, utilisez PostCSS avec postcss-nesting afin de transformer la syntaxe d'imbrication native en CSS à plat lors de la compilation, ce qui permet dès aujourd'hui d'écrire du CSS avec l'imbrication native.

DevTools et imbrication

Chrome DevTools affiche les règles imbriquées dans le panneau Styles sous leur forme imbriquée. Cliquer sur une règle imbriquée vous amène à l'emplacement source correspondant dans le panneau Sources. Le débogage d'un CSS imbriqué est aussi clair que celui d'un CSS à plat dans les DevTools modernes.

Vérification des connaissances

Quelle différence y a-t-il entre l'imbrication avec et sans le sélecteur  ?

Résumé

L'imbrication CSS native permet d'utiliser une syntaxe imbriquée semblable à celle de Sass dans du CSS classique. Le sélecteur & crée des sélecteurs composés pour les pseudo-classes, les pseudo-éléments et les modificateurs. Les requêtes @media imbriquées regroupent les styles adaptatifs avec les éléments concernés. PostCSS transforme l'imbrication native pour les anciens navigateurs, ce qui permet de l'adopter progressivement dès aujourd'hui.

Questions Fréquemment Posées

La leçon « Imbrication CSS native » est-elle gratuite ?

Oui — le texte complet de « Imbrication CSS native » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours CSS Academy, passe à CoddyKit PRO. Le cours CSS Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Imbrication CSS native » ?

Écrivez des règles CSS imbriquées sans préprocesseur grâce à la spécification native de l’imbrication CSS. Tu pratiques CSS Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer CSS Academy ?

Aucune expérience préalable n'est requise. CSS Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Imbrication CSS native » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon CSS Academy ?

Oui. Chaque leçon CSS Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Imbrication CSS native
  2. :has() : pseudo-classe relationnelle
  3. @scope pour des styles à portée limitée
  4. API View Transitions
← Retour à CSS Academy