@wakenbyWork

Как лучше выставлять вешнюю геометрию для блоков bem?

Есть блок tile, вот его описание:

.title {
  @include heading-h2;

  display: block;
  margin-bottom: 64px;

  @media (width < $media-1200) {
    @include heading-h4;
  }

  @media (width < $media-768) {
    @include heading-h6;
  }

  @media (width < $media-576) {
    @include body-middle-semibold;
  }

  &--mb-small {
    margin-bottom: 24px;

    @media (width < $media-576) {
      margin-bottom: 16px;
    }
  }

  &--mb-big {
    margin-bottom: 64px;

    @media (width < $media-1200) {
      margin-bottom: 40px;
    }

    @media (width < $media-576) {
      margin-bottom: 32px;
    }
  }

  &--center {
    text-align: center;
  }
}


В проекте 2 вида отступов с низу у title. Я решил их вынести в модификаторы, можно ли в модификаторах по bem писать внешнюю геометрию блока?

Если можно: Если у блока всегда один отступ с низу лучше тоже его вынести в модификатор например: .title--mb-def
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
Get-Web
@Get-Web Куратор тега CSS
Front-End Developer
Внешние отступы и позиционирование относительно родительских блоков необходимо делать при помощи модификаторов либо миксов. Модификаторами определяем базовые стили, миксами переопределяем стили в контексте текущего блока.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro Куратор тега CSS
frontend developer
ну если прямо по канонам БЭМ, то любая внешняя геометрия задаются в элементах.
Ваш тайтл является элементом какого-то внешнего блока, вот его и миксуйте.

.block
  .block__title.title


.block__title {
  margin-bottom: 1rem;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы