我处于项目的早期阶段,随着项目的发展,它将积累大量的样式。我们正在讨论CSS预处理器mixin模式的优点,用于DRY我们的样式代码。当mixin参数化时,好处很明显 - 几乎每个实例都必须手写,所以代码膨胀相对较少,特别是如果不经常使用特定的参数化。CSS预处理器mixin与标记类
但是,对于未参数化的mixin,它有点模糊。以清除为例。
在纯CSS中,我们可能会创建一个cf
类,然后在标记中调用它,只要有必要。这个效果很好,但是却带有纯粹的表现类的标记。
在SASS,我们可以通过使用一个mixin做到这一点逃离这个:
//in _mixins.scss
@mixin clear-fix() {
&:before, &:after {
content: '\0020';
display: block;
clear: both;
visibility: hidden;
line-height: 0;
width: 0;
height: 0;
}
}
//in my_component.scss
@import 'mixins';
.my_component {
// styles ...
@include clear-fix()
}
这有集中纯粹的表象关注,使我们的风格代码更易于维护的优点。但不足之处在于,编译后的CSS将会非常不稳定,而clear-fix mixin会在它混入的每个块中逐字重复(将其应用于我们以相同方式使用的任何类似的CSS模式)。
我的问题是在代码中重复混合是否可能导致任何重大问题?还是有另一个我没有想到的解决方案?
听起来像一个双赢。关键是要确定少量的实际抽象模式,这些抽象模式恰好需要“清除修复”作为细节。然后,所使用的类仍然具有语义上的意义,并且“clear-fix”可以仅作为mixin定义一次,但重复有限次数。 – acjay