如何通过smacss方法构建所有项目风格?

时间:2016-10-08 15:18:43

标签: css smacss

我非常喜欢smacss.com/book/categorizing的模块化架构。但在实际项目中,我偶然发现了一个简单的案例(正如我所想)。

好吧,我得到了什么: 1)我通过smacss为我的css文件创建了一个文件夹结构:

  

     

布局

     

模块

     

国家

     

主题

2)在文件夹模块中我创建了一个带有基本模态窗口样式的文件,如下所示:

  

     

布局

     

模块/模态/ modal.css

     

国家

     

主题

3)但我有一些常见样式的模态窗口(我在modal.css中分隔 - 颜色,边框,位置等),但它们有自己的参数。第一个窗口非常简单,有两个按钮,第二个窗口有很多不同的内容。

问题是:我应该在哪里为这两个窗口添加样式? a)为模块创建文件夹:

  

模块/模态/ modal.css

     

模块/确认/ confirm.css

     

模块/产品/ product.css

b)或为每个css文件创建并将它们放在Base文件夹中?

  

底座/ confirm.css

     

底座/ product.css

     

模块/模态/ modal.css

我很乐意得到任何建议。谢谢

1 个答案:

答案 0 :(得分:3)

使用SMACCS的主要原因是组织CSS文件,因此,有很多方法完全取决于您的项目。

根据作者的说法,只要您记住SMACSS的概念,您就可以根据需要修改项目。所以,我建议你看一下你的项目,检查你的文件夹和文件,不仅要为你做更多的事情,还要为团队中的其他开发人员或将来阅读你的代码做更多的事情。

您应该牢记两个主要目标:

  

使用元素选择器a将基本规则应用于元素   后代选择器,或子选择器,以及任何   伪类。它不包括任何类或ID选择器。它是   定义该元素应该在所有元素中的外观的默认样式   在页面上出现。

  

模块是页面的一个更离散的组件。这是   页面的肉。模块位于布局组件内。模块可以   有时候也会坐在其他模块中。每个模块应该是   旨在作为独立组件存在。

所以,有了这个明确的定义,你现在知道如果你的规则应该是独立的,那么把它们放在Module下面,如果它们作为默认的元素工作,那么把它们放在Base下面。相比之下,对我来说,Product或Modal都可以是Module并且它们不是Base作为基础明确表示为默认元素规则,就像我在上面所说的那样。

我只关心您编写的CONFIRM类似于State规则,我认为它可以放在State文件夹下。

  

状态是增强和覆盖所有其他样式的东西。对于   例如,手风琴部分可能处于折叠或展开状态。   消息可能处于成功或错误状态。

我强烈推荐您,再次阅读SMACCS书籍或网站,并查看可以在Youtube上找到的 Jonathan Snook 研讨会之一。它将帮助您了解更多并做出更好的决策。