-1

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

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

然后,您会遇到一个以非常特定于站点的方式设置样式的模块——它太独特而无法使用您的库模块之一。

因此,您在 Sass/Less 文件中拥有该“站点模块”的代码,并将其与该站点的其他样式代码一起保存,例如布局样式。它没有与您的“库模块”一起保存。

我的问题是:你有没有做任何事情来区分“站点模块”和“库模块”?

4

2 回答 2

2

我通常遵循CSS 中的YAGNI 原则,这有助于在这种情况下做出决策。始终在您真正需要它们时实施它们,而不是在您只是预见到需要它们时才接近新模块,以作为站点模块开始其生命。每当我需要在多个站点中使用该模块时,我就会考虑将其转换为库模块。

于 2014-04-10T15:59:59.377 回答
0

这个问题在定义级别的帮助下得到解决。主要思想是您可以将块(甚至是相同块的一部分)拆分为不同的层,然后在项目中组合这些层。例如,您可以有库级别(或几个库)和一个项目级别,或者根据环境可以是不同的级别:所有平台的通用部分和台式机和平板电脑的不同部分等等。

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

于 2014-04-12T16:05:21.473 回答