如何正确混合Bootstrap和BEM?

时间:2018-03-28 00:19:28

标签: css twitter-bootstrap bem

我正在考虑慢慢重构一个基于Angular / Bootstrap构建的相当大的项目,该项目只有超过16,000行CSS。耶!

我一直在寻找越来越多的BEM,并相信这是一个很好的方法。我们很有可能会转向React,我还不太了解它,但在我看来,React和BEM的模块化将很好地融合。

目前,我正在纯粹关注CSS,并想知道如何将BEM的方法与我们在Bootstrap中使用的布局和表示类结合起来(例如.container,{{1 },.row等。)

我了解使用.col-m-12@extend将这些布局类的样式添加到块或模块的做法,但我个人认为不是这样做的。一个好人。这种做法使得无法通过单独查看html来判断发生了什么,并且很难维护/调试/重构。

简单地执行以下操作是否有任何问题?

@include

3 个答案:

答案 0 :(得分:3)

  

我了解使用@extend@include将这些布局类的样式添加到块或模块的做法,但我个人认为不是这样做的。一个好人。这种做法使得无法通过单独查看html来判断发生了什么,并且很难维护/调试/重构。

你是对的。

您可以考虑为BEM使用替代语法,以防止命名冲突:

答案 1 :(得分:0)

你建议的方案没有错。继续坚持下去。

答案 2 :(得分:0)

我希望将nav__item放在col-sm-2之后,因为在大多数情况下,我希望BEM覆盖nav_item。 col-sm-2是基类,而nav_item将添加或修改它。