Я недавно начал использовать методологию БЭМ, и меня смущает наследование классов, а точнее — когда мы говорим о БЭМ — некоторые варианты использования модификаторов.
Давайте посмотрим на этот пример, у меня есть простой элемент с несколькими дочерними элементами.
.b-content { width: 100%; }
.b-content__image { display: block; }
.b-content__date { font-size: 14px; }
.b-content__title { font-size: 30px; }
.b-content__text { font-size: 16px; }
Теперь я хочу повторно использовать свой блок .b-content с немного другими стилями, поэтому я использую модификатор .m-compact, и теперь я не уверен, какой подход является правильным один (в БЭМ).
Должен ли я добавлять класс модификатора ко всем элементам (которые я считаю более правильными в соответствии с документацией):
.b-content.m-compact { width: 50%; }
.b-content__image.m-compact { display: none; }
.b-content__date.m-compact { font-size: 12px; }
.b-content__title.m-compact { font-size: 24px; }
.b-content__text.m-compact { font-size: 14px; }
или я должен добавить модификатор только к родительскому элементу:
.b-content.m-compact { width: 50%; }
.b-content.m-compact .b-content__image { display: none; }
.b-content.m-compact .b-content__date { font-size: 12px; }
.b-content.m-compact .b-content__title { font-size: 24px; }
.b-content.m-compact .b-content__text { font-size: 14px; }
Я нахожу этот второй метод более логичным, поскольку я пишу каскадные стили, и в реальном мире, если я хочу написать электронное письмо 10 людям, я бы написал одно и просто добавил больше получателей. , но с другой стороны я понимаю, что БЭМ - это практически некаскадный подход.
Итак, что я должен использовать и почему?