Всем привет.
Ситуация у меня такая.
Есть кнопка .button
У нее есть два цвета: синий и белый -blue и -white
Кнопка может быть заблокирована -disabled
Кнопка может быть с прозрачным фоном -without_background
В зависимости от цвета кнопки имеются разные стили для каждого другого модификатора (-disabled и -without-background)
Но -disabled и -without-background имеет свои общие стили. Т.е. есть общие стили блокировки, но для каждого цвета есть особенности.
Получается чтобы мне сделать кнопку типа: белая, заблокированая и без фона
Нужны такие классы: button button-white button-disabled button-white-disabled button-without_background button-white-without_background
Правильно я делаю все? =)
Если я правильно понял, ты пытаешься сэкономить на общих стилях в ущерб логике.
Описывая кнопку декларативно, ожидаемо, в классах нужно получить то же самое. Нужна белая заблокированная кнопка без фона, так и должно быть записано:
button button_white button_disabled button_without-background.
В твоём случае есть дополнительные условия совместного использования модификаторов.
Я бы избегал избыточности классов в HTML, а написал более специфичные CSS-правила.
Например,
.button_white {
color: black;
}
.button_white.button_disabled {
color: grey;
}