目前使用 scss 我了解变量、包含和嵌套。
我正在尝试创建一个使用 BEM 命名结构的新 scss 设置。所以例如
.btn {
padding: 20px;
.btn__value {
color: $valColour;
}
}
.btn--gold {
color: $gold;
}
Run Code Online (Sandbox Code Playgroud)
所以我有类 .btn__value 嵌套,因为它将是按钮块内部的一个跨度,并且只在那里使用,它取决于按钮父元素,所以 BEM 状态使用 __ 作为元素类名的前缀。
但是按钮的颜色是样式器,因此它们没有嵌套(我不确定这一点,因为我可能会像下面这样嵌套这个。)
.btn {
padding: 20px;
.btn__value {
color: $valColour;
}
&.btn--gold {
color: $gold;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试为此找出最佳实践。如果有人有任何意见,我很乐意听到。我不是嵌套的忠实粉丝。但是,由于它名为 btn--我不会在其他任何地方使用它。
我为您创建了一个非常简单的实例来帮助您理解 BEM。本质上,您想在 sass 中使用与号来连接类名。
我的示例具有不同的类名以帮助使其更加清晰,您可以在上面的链接中查看 CSS 输出以及如何在 HTML 中使用这些类的示例。
// ----
// Sass (v3.4.21)
// Compass (v1.0.3)
// ----
$defaultColor: black;
$gold: gold;
// Block
.btn {
color: $defaultColor;
padding: 20px;
// Element
&__span{
font-weight: 600;
}
// Modifier
&--no-padding{
padding: 0;
}
// Modifier
&--gold{
color: $gold;
}
}
Run Code Online (Sandbox Code Playgroud)
希望这有助于为您清除 BEM!