Я отображаю следующие HTML для отображения сообщений:
<div className="message">
<div className="message_label">
A message
</div>
</div>
Используя следующий класс S CSS:
.message {
margin: 10px;
border-radius: 10px;
border: 3px solid lightblue;
&_label {
color: #444;
padding: 5px;
}
}
Следуя БЭМ, я хочу создать еще один модификатор версия для сообщений об ошибках:
<div className="message--error">
<div className="message_label">
This is an error!
</div>
</div>
Эта версия просто изменит предыдущие цвета на red
, поэтому я хочу расширить предыдущий класс S CSS:
.message {
margin: 10px;
border-radius: 10px;
border: 3px solid lightblue;
&_label {
color: #444;
padding: 5px;
}
&--error {
@extend .message;
border: 3px solid red;
&_label {
color: red; // This is not working
}
}
}
Но селектор message_label
не работает, поскольку его внутренний селектор и @extend
не влияют на него, как объяснено в S CSS Docs . Какой лучший способ расширить класс, включая внутренний селектор?
Здесь вы можете проверить DEMO .