Méthode BEM en CSS : des classes claires pour des composants autonomes et maintenables
Problème de lecture
Cette vidéo ne semble pas disponible
00:00
00:00
Sous-titres non disponibles

Méthode BEM en CSS : des classes claires pour des composants autonomes et maintenables

Carl Brison
Vente flash ! -23%
9,95€12,95€
klarna-condensed
Acheter maintenant, payer plus tard. En savoir plus

Téléchargement & visionnage illimité

Satisfait ou remboursé

Paiement 100% sécurisé

Vous ciblez une carte avec une chaîne comme main section div, puis vous la déplacez ou la dupliquez, et le style disparaît parce que le sélecteur dépendait de la structure HTML. La méthode BEM (Bloc, Élément, Modificateur) règle ce problème à la source : chaque composant porte ses propres classes, se lit d'un coup d'œil et fonctionne où que vous le posiez dans la page. Vous l'appliquez en live coding sur une carte de profil, puis sur une carte d'avis client complète avec sa variante mise en avant, le tout rangé dans une feuille de style organisée en cascade layers.

Méthode BEM : ce que vous saurez faire

À la fin du cours, la convention BEM devient un réflexe sur chaque composant que vous codez.

  • Rendre un composant indépendant de sa place dans la page
  • Nommer blocs et éléments avec la convention du double underscore
  • Décliner une variante sans réécrire le composant de base
  • Déclarer vos éléments à plat, sans chaîne de sélecteurs parents
  • Décider si un bouton appartient au bloc ou devient un composant
  • Ranger vos composants BEM dans une architecture en layers
  • Masquer des émojis décoratifs aux lecteurs d'écran

Modificateur BEM : une variante sans dupliquer le CSS

Le modificateur est ce qui fait gagner le plus de temps. La carte « premium » comme l'avis « à la une » reprennent tout ce que le bloc définit déjà, padding, largeur maximale, arrondi, et ne redéclarent que ce qui change : fond sombre, couleurs du nom et du texte, ombre plus marquée, badge positionné en haut à droite. Le cours montre aussi la limite de l'exercice : pour recolorer un élément dans la variante, on repart du sélecteur parent, ce que le nesting CSS permettra d'alléger dans l'épisode suivant de la série.

BEM et cascade layers : reset, base, components, utilities

La carte d'avis client se construit en trois temps, HTML sémantique, attributs ARIA, puis classes BEM, avant de passer au CSS. La feuille reprend les quatre layers vus dans le cours sur la cascade, la spécificité et les layers, et place chaque composant dans le layer components, commenté et ordonné comme le HTML. Une vidéo revient sur la carte produit codée dans cet épisode précédent pour y lire la structure BEM déjà en place. Côté accessibilité, les étoiles en émoji sont retirées de l'arbre d'accessibilité avec aria-hidden ; pour creuser ces attributs, voyez le cours sur les attributs ARIA essentiels.

Pour qui

Le badge Intermédiaire est justifié : vous écrivez déjà du HTML et du CSS sans aide, et vous connaissez Flexbox et le positionnement, que le cours utilise sans les réexpliquer. Il se suit seul pour apprendre BEM, mais la vidéo de reprise sera plus parlante si vous avez vu l'épisode sur les layers. Aucun framework ni préprocesseur : uniquement du CSS natif, écrit dans Visual Studio Code.

Pour aller plus loin

Vous voulez regrouper les éléments d'un bloc directement dans son sélecteur : le tuto gratuit sur le nesting CSS pose les bases de l'imbrication native que la série combinera ensuite avec BEM.

Qu’allez-vous apprendre dans ce cours ?

Plan de cours
Chapitre 1
Comprendre la méthode BEM
Chapitre 2
Atelier : carte d'avis client
Chapitre 3
Et ensuite : BEM et nesting CSS

Table des matières

Chapitre 1 : Comprendre la méthode BEM
31m54
 
Leçon 1Pourquoi BEM : rendre un composant indépendant
Leçon 2Nommer bloc et éléments d'une carte de profil
Leçon 3Créer une variante premium avec un modificateur
Leçon 4Lire la structure BEM de la carte produit
Chapitre 2 : Atelier : carte d'avis client
39m58
 
Leçon 1Présentation de la carte d'avis client
Leçon 2Structurer le HTML sémantique de l'avis
Leçon 3Insérer des étoiles en émoji sans librairie
Leçon 4Rendre la note accessible avec ARIA
Leçon 5Nommer les classes BEM de la carte d'avis
Leçon 6Déclarer les quatre cascade layers
Leçon 7Écrire les layers reset et base
Leçon 8Styliser le bloc et ses éléments à plat
Leçon 9Créer la variante à la une et son badge
Chapitre 3 : Et ensuite : BEM et nesting CSS
01m34
 
Leçon 1Prochaine étape : BEM et nesting CSS

Aperçus

Vos questions sur le cours

Que contient le fichier source ?

L'intégralité des codes liés à ce tuto.

Qu'est-ce que la méthode BEM en CSS ?

BEM est une convention de nommage des classes CSS en trois niveaux : Bloc, Élément, Modificateur. Le bloc désigne le composant (review-card), l'élément une de ses parties, reliée par un double underscore (review-card__author), et le modificateur une variante, reliée par deux tirets. Chaque classe dit à quel composant elle appartient, ce qui évite les conflits de noms sur les gros projets.

La méthode BEM est-elle une norme du W3C ?

Non. BEM n'est pas une spécification du W3C mais une convention adoptée par les équipes de développement front-end. Le navigateur n'y voit que des classes CSS ordinaires : elle fonctionne partout, sans outil ni configuration.

BEM est-il compatible avec les cascade layers et le nesting CSS ?

Oui. Dans ce cours, les composants BEM sont rangés dans le layer components, à côté des layers reset, base et utilities. Le nesting CSS natif permet ensuite de regrouper les éléments dans le sélecteur de leur bloc : le tuto gratuit sur le nesting CSS en pose les bases.

Quand créer un élément BEM plutôt qu'un nouveau bloc ?

Une partie qui n'a de sens que dans son composant devient un élément, comme l'image ou le nom d'une carte. Une partie réutilisable ailleurs, comme un bouton, gagne à devenir un bloc à part avec sa propre classe et ses propres variantes. Le cours compare les deux choix sur le bouton d'une carte produit.

Le cours applique-t-il BEM avec JavaScript, React ou Sass ?

Non. Le cours travaille uniquement en HTML et CSS natif, sans framework, sans préprocesseur et sans JavaScript. La convention reste la même dans ces environnements, puisqu'elle ne porte que sur le nom des classes.

Comment accéder au cours et au fichier source ?

Le cours s'achète à l'unité ou se suit avec l'abonnement Tuto.com, depuis votre compte. Le fichier source rassemble le code HTML et CSS des exercices du cours.

Payer plus tard

Prix d'achat : 9,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