我正在考虑慢慢重构一个基于Angular / Bootstrap构建的相当大的项目,该项目只有超过16,000行CSS。耶!
我一直在寻找越来越多的BEM,并相信这是一个很好的方法。我们很有可能会转向React,我还不太了解它,但在我看来,React和BEM的模块化将很好地融合。
目前,我正在纯粹关注CSS,并想知道如何将BEM的方法与我们在Bootstrap中使用的布局和表示类结合起来(例如.container
,{{1 },.row
等。)
我了解使用.col-m-12
或@extend
将这些布局类的样式添加到块或模块的做法,但我个人认为不是这样做的。一个好人。这种做法使得无法通过单独查看html来判断发生了什么,并且很难维护/调试/重构。
简单地执行以下操作是否有任何问题?
@include
答案 0 :(得分:3)
我了解使用
@extend
或@include
将这些布局类的样式添加到块或模块的做法,但我个人认为不是这样做的。一个好人。这种做法使得无法通过单独查看html来判断发生了什么,并且很难维护/调试/重构。
你是对的。
您可以考虑为BEM使用替代语法,以防止命名冲突:
答案 1 :(得分:0)
你建议的方案没有错。继续坚持下去。
答案 2 :(得分:0)
我希望将nav__item放在col-sm-2之后,因为在大多数情况下,我希望BEM覆盖nav_item。 col-sm-2是基类,而nav_item将添加或修改它。