Sass 使用带Susy的欧米茄从4列更改为3列失败
这当然是用一些代码最容易显示的:Sass 使用带Susy的欧米茄从4列更改为3列失败,sass,susy-compass,Sass,Susy Compass,这当然是用一些代码最容易显示的: .container{ .gallery { ul { @include clearfix; } li { @include span-columns(1,4); &:nth-child(4n) { @include omega; } } }
.container{
.gallery {
ul {
@include clearfix;
}
li {
@include span-columns(1,4);
&:nth-child(4n) {
@include omega;
}
}
}
@include at-breakpoint($large-columns) {
.gallery {
li {
@include span-columns(1,3);
&:nth-child(4n) {
@include remove-omega;
}
&:nth-child(3n) {
@include omega;
}
}
}
}
}
我从4列开始,第4列是欧米茄,然后我想换成3列,第3列是欧米茄。正确的元素被正确地左/右浮动,但每四个元素的右边距都是错误的
我这样做对吗?或者更确切地说,我做错了什么
谢谢你的阅读,
/Andy您的问题具有误导性,因为我们不知道
$large columns
的值。我假设该值可能是59em3
——但这非常有效。看起来这个值实际上只是59em
——这就是问题的根源
如果设置的断点没有列计数,Susy将根据$column width
和$gotter width
设置计算新上下文。这不会给span columns(1,3)造成任何问题,因为您使用显式上下文(3)覆盖了全局上下文。但是remove omega
还需要知道上下文(为了应用排水沟),而您没有通过一个,因此它使用全局上下文
您有两个选择:
位于断点(59em 3)
删除omega(3)
你能在codepen或jsfiddle上显示工作代码吗?嗯,不太可能,因为它取决于Susy。。。基本上,预处理器的输出是错误的。你可以在这里看到:我已经测试了你的密码笔,它似乎工作得很好。最初它将是4列,但当最小宽度达到59em时,它将变成3列。这就是你所期望的工作方式吗?看看mediaquery中4n元素右边的边距,这就是我上面要问的;右边距错误。$列宽=4em,$边沟宽度=1em,$大列=12。抱歉,我没有意识到这些值会对计算产生任何影响?有什么价值观吗?我不太明白。。。我没有明确删除上面第四项的欧米茄吗?您正在删除欧米茄,但您不理解上下文影响计算的方式。断点正在将上下文设置为12列,但
span columns(1,3)
将使用上下文3覆盖该设置。您需要确保span列
和remove omega
获得相同的上下文。span列(4)
和remove omega
(两者都假设全局上下文为12),或者span列(1,3)
和remove omega(3)
(两者都使用3)。或者,您可以更改断点,在断点处使用全局设置上下文3(59em 3)
<代码>删除欧米茄相对于上下文添加边沟。