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



以下是我在使用BEM/SMACSS的CSS架构时遇到的一种情况。我想看看其他开发人员是如何处理的

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

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

因此,您将"站点模块"的代码保存在Sass/Less文件中,并将其与该站点的其他样式代码(如布局样式)一起保存。它不会与您的"库模块"一起保存

我的问题是:你做了什么来区分"站点模块"one_answers"库模块"吗?

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

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

请参阅http://bem.info/method/filesystem/了解更多详细信息。

最新更新