我使用的是青菜和我用BEM的符號重複父選擇,例如,重複的類名 -使用BEM +薩斯家長選擇到目標修飾的子元素無
.c-block {
background:red;
&__element {font-size:14px;}
&--modifier {background:blue;}
}
此輸出 -
.c-block {
background: red;
}
.c-block__element {
font-size: 14px;
}
.c-block--modifier {
background: blue;
}
這使得將來更新班級名稱更加簡單 - 在一個地方更改並排序!
現在事情變得與修飾更復雜和定位自己的孩子:
.c-block {
background:red;
&__element {font-size:14px;}
&--modifier {background:blue;
.c-block__element {font-size:20px;}
}
}
注意如何我不得不重複類名「.C-塊」。有什麼辦法可以避免這種情況?我只想擁有一個類名聲明,它可以在我的樣式中引用,並且很容易在一個地方進行更改。
是否使用變量避免類名稱重複的唯一方法?例如 -
.c-block {
$class: c-block;
background:red;
&__element {font-size:14px;}
&--modifier {background:blue;
& .#{$class}__element {font-size:20px;}
// the above line = .c-block--modifier .c-block__element
}
}
我一直在想,必須有一些更好的sass + BEM方法來做到這一點,而不是使用變量。
您最多可以嵌套4層,這是推薦的。如果你想嵌套超過4個級別,請使用變量。 – Raviteja
也許相關:http://stackoverflow.com/questions/41181012/scss-bem-style-children-structure-when-parent-has-modificator – Paleo