具有BEM和SMACSS的站点模块与库模块

时间:2014-04-10 15:40:56

标签: css sass less bem smacss

这是我使用BEM / SMACSS在CSS架构中经常遇到的情况。我想看看其他开发者如何处理它。

您有一个跨多个站点使用的CSS模块库。像.btn-group.nav-tabs等模块

然后您会遇到一个以特定于网站的方式设置风格的模块 - 它太独特,无法使用您的某个库模块。

所以你有#34;站点模块的代码"在Sass / Less文件中,您可以使用该网站的其他样式代码保存它,例如布局样式。它未与您的"库模块一起保存。"

我的问题是:你做了什么来区分"网站模块"来自您的"库模块"?

2 个答案:

答案 0 :(得分:2)

我通常在CSS中使用YAGNI principle,这有助于在这种情况下做出决定。在总是在你真正需要它们的时候实现它们,永远不会在你预见到需要它们时接近新模块开始它作为站点模块的生命。每当我需要在多个站点中使用该模块时,我就会考虑将其转换为库模块。

答案 1 :(得分:0)

此问题在定义级别的帮助下得以解决。 主要思想是您可以将块(甚至是相同块的部分)拆分为在项目中组合的不同层。例如。您可以拥有图书馆级别(或一些图书馆)和项目级别,也可以根据环境设置不同的级别:所有平台的常用部分以及桌面和平板电脑的不同部分等等。

有关详细信息,请参阅http://bem.info/method/filesystem/