【发布时间】:2020-07-15 20:06:05
【问题描述】:
我为以下 HTML 设置样式以显示消息:
<div className="message">
<div className="message_label">
A message
</div>
</div>
使用以下 SCSS 类:
.message {
margin: 10px;
border-radius: 10px;
border: 3px solid lightblue;
&_label {
color: #444;
padding: 5px;
}
}
在 BEM 之后,我想为错误消息创建另一个修改器版本:
<div className="message--error">
<div className="message_label">
This is an error!
</div>
</div>
这个版本只是将之前的颜色改为red 所以我想扩展之前的SCSS类:
.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 不会影响它,如SCSS Docs 中所述。扩展包含内部选择器的类的最佳方法是什么?
您可以查看DEMO here。
【问题讨论】: