【发布时间】:2016-11-21 04:05:30
【问题描述】:
我最近开始使用 BEM 方法,我对类继承感到困惑,或者更确切地说 - 当我们谈论 BEM 时 - 修饰符的一些用例。
我们看这个例子,我有一个简单的元素,孩子很少
.b-content { width: 100%; }
.b-content__image { display: block; }
.b-content__date { font-size: 14px; }
.b-content__title { font-size: 30px; }
.b-content__text { font-size: 16px; }
现在我想以稍微不同的样式重用我的 .b-content 块,所以我使用修饰符 .m-compact 现在我不确定是什么方法是正确的(在 BEM 中)。
我是否应该将修饰符类附加到所有元素(根据文档我发现它更有效):
.b-content.m-compact { width: 50%; }
.b-content__image.m-compact { display: none; }
.b-content__date.m-compact { font-size: 12px; }
.b-content__title.m-compact { font-size: 24px; }
.b-content__text.m-compact { font-size: 14px; }
或者我应该只将修饰符附加到父元素:
.b-content.m-compact { width: 50%; }
.b-content.m-compact .b-content__image { display: none; }
.b-content.m-compact .b-content__date { font-size: 12px; }
.b-content.m-compact .b-content__title { font-size: 24px; }
.b-content.m-compact .b-content__text { font-size: 14px; }
我发现第二种方法更合乎逻辑,你知道,因为我正在编写 层叠 样式,而在现实世界中,如果我想给 10 个人写电子邮件,我会只写一封添加更多收件人,但另一方面,我意识到 BEM 实际上是非级联方法。
那么我应该使用什么以及为什么?
【问题讨论】:
-
这个问题要么过于宽泛,要么基于观点,要么需要讨论,因此与 Stack Overflow 无关。如果您有具体的、可回答的编程问题,请提供完整的详细信息。