Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 站点模块与带边界元和SMACS的库模块_Css_Sass_Less_Bem_Smacss - Fatal编程技术网

Css 站点模块与带边界元和SMACS的库模块

Css 站点模块与带边界元和SMACS的库模块,css,sass,less,bem,smacss,Css,Sass,Less,Bem,Smacss,下面是我在使用BEM/SMACS的CSS架构中经常遇到的一种情况。我想看看其他开发人员如何处理它 您有一个跨多个站点使用的CSS模块库。模块,如.btn组,.nav选项卡等 然后您会遇到一个以特定于站点的方式设计的模块——它太独特了,无法使用您的库模块之一 因此,您将该“站点模块”的代码保存在Sass/Less文件中,并将其与该站点的其他样式代码(如布局样式)一起保存。它不会与“库模块”一起保存 我的问题是:你做了什么来区分“站点模块”和“库模块”吗?我通常遵循CSS,这有助于在这种情况下做出决

下面是我在使用BEM/SMACS的CSS架构中经常遇到的一种情况。我想看看其他开发人员如何处理它

您有一个跨多个站点使用的CSS模块库。模块,如
.btn组
.nav选项卡

然后您会遇到一个以特定于站点的方式设计的模块——它太独特了,无法使用您的库模块之一

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


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

我通常遵循CSS,这有助于在这种情况下做出决策。当你真的需要它们的时候,永远不要在你预见到你需要它们的时候实现它们。一个新的模块作为一个站点模块开始它的生命。每当我需要在一个以上的站点中使用那个模块时,那就是我考虑把它变成一个库模块的时候。

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


有关更多详细信息,请参阅。

感谢您的回复。当它仍然是一个站点模块时,您觉得区分它有用吗?例如,将其分类为
.site module
而不是
.module
,以帮助您定位源代码并避免与库中名为
.module
的任何内容冲突?如果该站点模块与库模块一起加载,则需要使用名称空间来避免冲突。有一个样式指南/命名约定,特别是用于创建库模块的样式指南/命名约定,这将有助于您轻松区分它们。