【发布时间】:2015-02-06 18:36:37
【问题描述】:
如果您的模块需要根据布局的哪个部分对每个实例进行细微更改,您如何使用 SMACSS 处理?
正如我所见,我有两个选择,但似乎都不对。
- 创建子模块/修改器
- 我看到的问题是这个子模块只会被使用一次,并且随着项目的增长这些将开始构建。
- 在布局类中嵌套模块类
- 问题:增加的特异性,通过将模块样式与布局类一起放置会稍微弄脏代码,反之亦然。
我在 SMACSS 上找到的大部分信息都基于过于简化的情况,因此一旦您接触到实际代码,它就没有多大帮助。
这是一个具体的例子:
我有一个模块.nav 和一个子类.nav-hor 用于水平布局导航。 .nav-hor 太小时需要切换到切换导航(单击按钮时幻灯片打开)。这是由媒体查询控制的。但这里的问题是正确的断点将取决于它的父容器的大小。因此,媒体查询的断点很可能对于每个实例都不同。
.nav { /*...*/ }
.nav-hor { /*...*/ }
@media screen and (min-width: 30rem) { /* This dimension is variable according to the size of the parent container */
.nav-hor {
/* Convert to toggle nav */
}
}
【问题讨论】:
标签: css coding-style smacss