Css 站点模块与带边界元和SMACS的库模块
下面是我在使用BEM/SMACS的CSS架构中经常遇到的一种情况。我想看看其他开发人员如何处理它 您有一个跨多个站点使用的CSS模块库。模块,如Css 站点模块与带边界元和SMACS的库模块,css,sass,less,bem,smacss,Css,Sass,Less,Bem,Smacss,下面是我在使用BEM/SMACS的CSS架构中经常遇到的一种情况。我想看看其他开发人员如何处理它 您有一个跨多个站点使用的CSS模块库。模块,如.btn组,.nav选项卡等 然后您会遇到一个以特定于站点的方式设计的模块——它太独特了,无法使用您的库模块之一 因此,您将该“站点模块”的代码保存在Sass/Less文件中,并将其与该站点的其他样式代码(如布局样式)一起保存。它不会与“库模块”一起保存 我的问题是:你做了什么来区分“站点模块”和“库模块”吗?我通常遵循CSS,这有助于在这种情况下做出决
.btn组
,.nav选项卡
等
然后您会遇到一个以特定于站点的方式设计的模块——它太独特了,无法使用您的库模块之一
因此,您将该“站点模块”的代码保存在Sass/Less文件中,并将其与该站点的其他样式代码(如布局样式)一起保存。它不会与“库模块”一起保存
我的问题是:你做了什么来区分“站点模块”和“库模块”吗?我通常遵循CSS,这有助于在这种情况下做出决策。当你真的需要它们的时候,永远不要在你预见到你需要它们的时候实现它们。一个新的模块作为一个站点模块开始它的生命。每当我需要在一个以上的站点中使用那个模块时,那就是我考虑把它变成一个库模块的时候。 < P>这个问题是在定义层次的帮助下解决的。 其主要思想是,您可以将块(甚至是相同块的部分)拆分为不同的层,并在项目中进行组合。例如,您可以有库级别(或几个库)和项目级别,也可以根据环境的不同而有不同的级别:所有平台的通用部件,桌面和平板电脑的不同部件等等
有关更多详细信息,请参阅。感谢您的回复。当它仍然是一个站点模块时,您觉得区分它有用吗?例如,将其分类为
.site module
而不是.module
,以帮助您定位源代码并避免与库中名为.module
的任何内容冲突?如果该站点模块与库模块一起加载,则需要使用名称空间来避免冲突。有一个样式指南/命名约定,特别是用于创建库模块的样式指南/命名约定,这将有助于您轻松区分它们。