我非常喜欢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
我很乐意得到任何建议。谢谢
答案 0 :(得分:3)
使用SMACCS的主要原因是组织CSS文件,因此,有很多方法完全取决于您的项目。
根据作者的说法,只要您记住SMACSS的概念,您就可以根据需要修改项目。所以,我建议你看一下你的项目,检查你的文件夹和文件,不仅要为你做更多的事情,还要为团队中的其他开发人员或将来阅读你的代码做更多的事情。
您应该牢记两个主要目标:
使用元素选择器a将基本规则应用于元素 后代选择器,或子选择器,以及任何 伪类。它不包括任何类或ID选择器。它是 定义该元素应该在所有元素中的外观的默认样式 在页面上出现。
和
模块是页面的一个更离散的组件。这是 页面的肉。模块位于布局组件内。模块可以 有时候也会坐在其他模块中。每个模块应该是 旨在作为独立组件存在。
所以,有了这个明确的定义,你现在知道如果你的规则应该是独立的,那么把它们放在Module下面,如果它们作为默认的元素工作,那么把它们放在Base下面。相比之下,对我来说,Product或Modal都可以是Module并且它们不是Base作为基础明确表示为默认元素规则,就像我在上面所说的那样。
我只关心您编写的CONFIRM类似于State规则,我认为它可以放在State文件夹下。
状态是增强和覆盖所有其他样式的东西。对于 例如,手风琴部分可能处于折叠或展开状态。 消息可能处于成功或错误状态。
我强烈推荐您,再次阅读SMACCS书籍或网站,并查看可以在Youtube上找到的 Jonathan Snook 研讨会之一。它将帮助您了解更多并做出更好的决策。