使用 BEM 方法添加相同的元素名称

问题描述

我开始使用 BEM 方法,根据这个我有一个问题。
示例:

<div class="container">
  <div class="container__block-1">
    <h1 class="container-title">block1</h1>
  </div>
  <div class="container__block-2">
    <h1 class="container__title container-title">block2</h1>
  </div>
  <div class="container__block-3">
    <h1 class="container__title container-title">block3</h1>
  </div>
</div>

你如何看到我在块 2 和块 3 中使用:container__title 元素。我需要这个来为 h1 添加不同的边距和填充。
问题:我可以根据 element 方法container__block-2container__block-3 中使用相同的 BEM 吗?

解决方法

只要您希望具有与上述块相同的属性,就可以对另一个块使用相同的元素。

但是,如果您需要变体,那就是 modifier 发挥作用的时候。

每当您只需要对一组元素中的特定元素进行更改时,就可以在那里使用修饰符。它表示为 block__element--modifier

<div class="container">
  <div class="container__block-1">
    <h1 class="container-title">block1</h1>
  </div>
  <div class="container__block-2">
    <h1 class="container__title container__title--modifier1 ">block2</h1>
  </div>
  <div class="container__block-3">
    <h1 class="container__title container__title--modifier2">block3</h1>
  </div>
</div>
,

对于同一类的不同变体,你可以使用--

<div class="container">
  <div class="container__block-1">
    <h1 class="container-title">block1</h1>
  </div>
  <div class="container__block-2">
    <h1 class="container__title container__title--1">block2</h1>
  </div>
  <div class="container__block-3">
    <h1 class="container__title container__title--2">block3</h1>
  </div>
</div>