@Fehax

Как правильно использовать миксы классов?

Парни, научите, пожалуйста, ГРАММОТНО использовать микс классов.
В моём проекте часто попадаются случаи, что я должен использовать какой-то элемент по десятку раз.
Я создаю его в html, накидываю ему общие стили ( цвет, размер букв и тд ), дальше в каждом блоке, я его оборачиваю каким-то дивом. Если элементу ещё что-то нужно добавить, к примеру, нужно разместить справа, а не слева, как он стоит, то обращаюсь в css .родительский_блок_повторяющегося_элемента .сам_повторяющийся_элемент {позиция: справа}. Тогда, выходит, что я использую вложенность классов, а по БЭМ это запрещено.. Как правильно поступать?
И ещё вопрос, аналогичный: список. каждый элемент с разным фоном (на скрине пример). Задавать каждому элементу отдельный класс, это будет правильным? А если у меня их 50 этих элементов, думаю, это не очень хорошо будет.
630dfeb164dc9372024151.png
630dfeb667df9134823632.png
Сформулирую ещё раз то, в чём хочу разобраться: 1. Как правильно создавать, стилизовать и работать с повторяющимися элементы?
2. Как правильно задать РАЗНЫЕ свойства элементам одного блока?
<div class="block">
  <div class="block__element">Этот див должен быть красным</div>
  <div class="block__element">а этот зелёным</div>
  <div class="block__element">этот синим</div>
</div>
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
<div class="block">
  <div class="block__element block__element_red">Этот див должен быть красным</div>
  <div class="block__element block__element_green">а этот зелёным</div>
  <div class="block__element block__element_blue">этот синим</div>
</div>

// если будут более сложные модификаторы
<div class="block">
  <div class="block__element block__element_color block__element_color_red">Этот див должен быть красным</div>
  <div class="block__element block__element_color block__element_color_green">а этот зелёным</div>
  <div class="block__element block__element_color block__element_color_blue">этот синим</div>
</div>


SCSS:
.block {
  &__element {
    &_color {
      &_red {
        color: red;
      }
    }
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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