Maison > interface Web > tutoriel CSS > le corps du texte

Modèle CSS BEM – Un guide pour écrire du CSS évolutif et maintenable

Linda Hamilton
Libérer: 2024-09-28 06:16:29
original
730 Les gens l'ont consulté

CSS BEM Model – A Guide to Writing Scalable and Maintainable CSS

Modèle CSS BEM – Un guide pour écrire du CSS évolutif et maintenable

Dans cet article, nous allons plonger dans la méthodologie BEM (Block, Element, Modifier), une convention de dénomination CSS populaire qui vous aide à écrire du CSS propre, structuré et maintenable pour les grands projets. BEM garantit que votre code reste évolutif à mesure que le projet se développe et réduit les risques de conflits de style.

1. Qu’est-ce que le BEM ?

BEM signifie :

  • Bloc : une entité autonome qui a du sens en soi, comme un bouton, un menu ou un formulaire.
  • Élément : partie du bloc qui remplit une fonction spécifique, comme une étiquette de bouton ou un élément de menu.
  • Modificateur : une variation ou un état d'un bloc ou d'un élément, comme un bouton désactivé ou un élément de menu en surbrillance.

La méthodologie BEM met l'accent sur la création de code CSS réutilisable, prévisible et maintenable.

Convention de dénomination BEM :

.block {}
.block__element {}
.block--modifier {}
Copier après la connexion
  • Bloc : Représente le conteneur principal.
  • Élément : suit le nom du bloc, séparé par un double trait de soulignement (__).
  • Modificateur : Suit le nom du bloc ou de l'élément, séparé par un double trait d'union (--).

2. Définir la structure

Décomposons la structure de BEM avec un exemple.

Exemple :

<div class="menu">
    <ul class="menu__list">
        <li class="menu__item menu__item--active">Home</li>
        <li class="menu__item">About</li>
        <li class="menu__item">Contact</li>
    </ul>
</div>
Copier après la connexion

Dans cet exemple :

  • Bloc : .menu est le bloc principal représentant le menu de navigation.
  • Élément : .menu__list et .menu__item sont des éléments à l'intérieur du bloc.
  • Modificateur : .menu__item--active est un modificateur indiquant l'état actif de l'élément de menu.

3. Blocs dans BEM

Un bloc est un composant indépendant et réutilisable. Considérez-le comme une entité autonome qui peut être placée n'importe où dans votre code sans vous soucier que son style soit affecté par d'autres éléments.

Exemple :

.button {
    padding: 10px 20px;
    background-color: #3498db;
    color: white;
    border: none;
}
Copier après la connexion

Ici, .button est un bloc qui définit les styles d'un composant bouton. Vous pouvez réutiliser ce bloc sur plusieurs parties de votre site Web.

4. Éléments dans BEM

Un élément est une partie d'un bloc qui n'a pas de signification autonome. Il est lié au bloc et existe pour remplir une fonction liée au bloc.

Exemple :

.button__icon {
    margin-right: 10px;
}
.button__label {
    font-size: 14px;
}
Copier après la connexion

Ici :

  • .button__icon est un élément du bloc .button, représentant une icône dans le bouton.
  • .button__label est un autre élément, représentant l'étiquette de texte du bouton.

5. Modificateurs dans BEM

Un modificateur représente une variation d'un bloc ou d'un élément. Les modificateurs sont utilisés pour modifier l'apparence ou le comportement d'un composant, comme changer la couleur d'un bouton ou agrandir un élément.

Exemple :

.button--primary {
    background-color: #2ecc71;
}
.button--large {
    padding: 15px 30px;
}
Copier après la connexion

Ici :

  • .button--primary est un modificateur qui change la couleur d'arrière-plan du bouton.
  • .button--large est un autre modificateur qui augmente la taille du bouton.

Les modificateurs peuvent également être appliqués aux éléments :

.button__icon--small {
    width: 10px;
    height: 10px;
}
Copier après la connexion

6. Avantages de l'utilisation de BEM

  • Évolutivité : BEM est conçu pour être évolutif, ce qui le rend idéal pour les projets plus importants comportant de nombreux composants.
  • Réutilisabilité : les blocs sont autonomes et peuvent être réutilisés dans différentes parties d'un projet.
  • Maintenabilité : BEM encourage une dénomination claire et cohérente, ce qui facilite la maintenance du CSS à mesure que le projet se développe.
  • Prévisibilité : Vous pouvez facilement savoir quels éléments appartiennent à quels blocs et comprendre leurs variations en fonction du modificateur.

7. BEM en action

Regardons un exemple plus complet qui inclut des blocs, des éléments et des modificateurs :

HTML :

<div class="card">
    <div class="card__header">
        <h2 class="card__title">Card Title</h2>
    </div>
    <div class="card__body">
        <p class="card__text">This is a simple card component.</p>
    </div>
    <div class="card__footer">
        <button class="button card__button card__button--primary">Read More</button>
    </div>
</div>
Copier après la connexion

CSS :

/* Block */
.card {
    border: 1px solid #ddd;
    padding: 20px;
    border-radius: 5px;
}

/* Elements */
.card__header {
    margin-bottom: 15px;
}
.card__title {
    font-size: 18px;
    color: #333;
}
.card__body {
    margin-bottom: 15px;
}
.card__text {
    color: #666;
}
.card__footer {
    text-align: right;
}

/* Modifier */
.card__button--primary {
    background-color: #3498db;
    color: white;
}
Copier après la connexion

Dans cet exemple :

  • .card est le bloc qui représente l'intégralité du composant de la carte.
  • .card__header, .card__title, .card__body et .card__footer sont des éléments du bloc de cartes.
  • .card__button--primary est un modificateur qui applique un style principal au bouton de la carte.

8. Erreurs courantes à éviter dans BEM

  • Trop d'éléments imbriqués : évitez les éléments profondément imbriqués, car cela peut conduire à des noms de classe inutilement longs.
  • Modificateurs inutiles : n'utilisez des modificateurs que lorsque vous devez modifier l'apparence ou l'état d'un bloc ou d'un élément.
  • Combiner BEM avec d'autres conventions de dénomination : respectez BEM tout au long de votre projet pour plus de cohérence.

Conclusion

La méthodologie BEM est un moyen puissant de garder votre CSS organisé, prévisible et évolutif. En décomposant vos composants en blocs, éléments et modificateurs, vous pouvez maintenir un code plus propre et éviter les conflits de style, rendant le développement plus rapide et plus efficace au fur et à mesure de votre projet. grandit.


Suivez-moi sur LinkedIn

Ridoy Hasan

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!