Если назначить модификатор блоку то для модификации элемента получается каскад. Если назначить модификатор каждому элементу получается куча дополнительных классов что наверное можно назвать избыточностью. Как правильно?
HTML:
<div class="button button_red" lang="html">
<i class="button__i"/>
<span class="button__txt">Lorem</span>
</div>
CSS:
.button{
......
}
.button__i{
......
}
.button__txt{
......
}
/* как видно ниже модификатор блока порождает каскад */
.button_red .button__i{
color: red;
}
.button_red .button__txt{
color: red;
}
Пример упрощенный. В жизни может быть гораздо больше элементов