我一直在努力找出使用奇点显示项目列表的最佳解决方案。
我想基本上删除每行最后一项的填充,但将该填充添加回所有项目的整体项目宽度中。
我认为这个解决方案更多地与css有关,而不是与奇点有关,但也许在奇点中有一个好的解决方案我遗漏了?
这些项目最终将由cms定期添加。
示例:http://sassmeister.com/gist/7916151
好吧,有很多事情你应该考虑。
首先,Singularity和Breakpoint尚未与Sass 3.3兼容,而Sasmeister.com已经在使用Sass 3.3。确保您在项目中使用Sass 3.2.x。要演示Sass+HTML,请考虑使用SassBin.com.
其次,您使用的是12px
排水沟。这是不正确的。檐沟被指定为相对于单列单位的无单位值。所以,当你有两列和12px的排水沟时,你实际上告诉奇点,让排水沟比列大12倍。
相反,提供类似以下的相对排水沟:$gutters: 0.1
。
第三,您为中等大小指定了一个4列网格,但只能将其用作两列网格。如果您在项目中没有使用四列,我建议您省略四列的定义,继续使用两列网格。
第四,您正在容器上设置一个轮廓,但它永远不会正确显示,因为容器的高度为零。它的高度为零,因为它的所有内容都是浮动的。
要使容器包含浮动内容,必须对容器应用clearfix。用谷歌搜索一下。应用clearfix最简单的方法是使用Compass附带的pie-clearfix
mixin。但我建议您使用Toolkit附带的%clearfix-micro
扩展。
第五(甚至有这样的词吗?),为了消除右侧的空白,您必须对每行的最后一项应用最后一个float-span
。要正确地做到这一点,您必须了解nth-child
是如何工作的。我强烈建议你用谷歌搜索一下。
简而言之,nth-child
接受一个看起来像An+B
的自变量,其中A和B是整数。A应该等于列数,B是要寻址的列数。在处理最后一列时,在您的情况下,B等于A。例如,整个事情看起来像nth-child(3n+3)
。
第六,将奇点跨度应用于不同断点,使其累积。当您一次覆盖所有项目的跨度,以便在每个媒体查询中重新定义所有项目时,这是可以的。
但是,当您选择性地应用样式(应用到每行的最后一项)时,您也必须取消它们。这是一件非常不愉快的事情。
相反,您应该缩小媒体查询的范围,以便它们只处理两个断点之间的特定切片。在这种情况下,生成样式不会累积。
以下是如果您使用了我的所有建议,您的代码会是什么样子:http://sassbin.com/gist/7951326/
Seventh(我的舌头很疼),考虑使用断点切片器扩展,这是断点的一个小型包装器,可以快速轻松地切片断点范围。
以下是如果使用断点切片器,代码的外观:http://sassbin.com/gist/7951724/
Eighthly,如果确实需要固定排水沟,则应该设置$gutter-styles: 'fixed'
选项。
当然你可以这样做:
&:nth-child(3n) {
margin-right: 0;
}
在奇点维基上,它似乎表明这应该有效:
&:nth-child(3n) {
@include float-span(2, 'last');
}
但它没有,或者我不了解它的功能。
感谢您的广泛回答。
我很清楚第n个子选择器。我走了那条路,但决定这对我来说不是一个干净的解决方案。
我知道我没有清理浮子。。。不是我真正的问题。
根据文档,设置12px的固定高度是正确的:https://github.com/Team-Sass/Singularity/wiki/Creating-Grids#fixed-排水沟
我需要固定的排水沟。这就是问题的全部症结所在。
我开始制作自己的固定排水沟液柱解决方案,到目前为止我很喜欢:http://codepen.io/joshuarule/pen/zsfEo