SCSS 和 BEM 命名结构和最佳实践。
SCSS and BEM naming structures and best practices.
目前使用 scss 我了解变量、包含和嵌套。
我正在尝试创建一个使用 BEM 命名结构的新 scss 设置。例如
.btn {
padding: 20px;
.btn__value {
color: $valColour;
}
}
.btn--gold {
color: $gold;
}
所以我有 class .btn__value 嵌套,因为它将是按钮块内的一个跨度,并且只在那里使用,它取决于按钮父元素,所以 BEM 状态使用 __ 前缀元素 class 名称。
但是按钮的颜色是样式,所以它们不是嵌套的(我不确定这一点,因为我可能会像下面这样嵌套这个。)
.btn {
padding: 20px;
.btn__value {
color: $valColour;
}
&.btn--gold {
color: $gold;
}
}
我正在尝试找出最佳做法。如果有人有任何意见,我很想听听。我不太喜欢嵌套。然而,因为它的名字叫 btn-- 我不会在其他任何地方使用它。
我创建了一个非常简单的 live example 来帮助您理解 BEM。本质上,您想在 sass 中使用与符号来加入 class 名称。
我的示例有不同的 class 名称以帮助更清晰,您可以查看 CSS 输出以及如何在 [=19= 中使用 classes 的示例]在上面的link上。
// ----
// 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;
}
}
希望这有助于您清除 BEM!
目前使用 scss 我了解变量、包含和嵌套。
我正在尝试创建一个使用 BEM 命名结构的新 scss 设置。例如
.btn {
padding: 20px;
.btn__value {
color: $valColour;
}
}
.btn--gold {
color: $gold;
}
所以我有 class .btn__value 嵌套,因为它将是按钮块内的一个跨度,并且只在那里使用,它取决于按钮父元素,所以 BEM 状态使用 __ 前缀元素 class 名称。
但是按钮的颜色是样式,所以它们不是嵌套的(我不确定这一点,因为我可能会像下面这样嵌套这个。)
.btn {
padding: 20px;
.btn__value {
color: $valColour;
}
&.btn--gold {
color: $gold;
}
}
我正在尝试找出最佳做法。如果有人有任何意见,我很想听听。我不太喜欢嵌套。然而,因为它的名字叫 btn-- 我不会在其他任何地方使用它。
我创建了一个非常简单的 live example 来帮助您理解 BEM。本质上,您想在 sass 中使用与符号来加入 class 名称。
我的示例有不同的 class 名称以帮助更清晰,您可以查看 CSS 输出以及如何在 [=19= 中使用 classes 的示例]在上面的link上。
// ----
// 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;
}
}
希望这有助于您清除 BEM!