我有一个完美工作的网格,除了我想让导航中的列彼此对接。这是桌面上的24列魔术网格,每个导航项目都是4/24。如果我尝试负边距,它们不再覆盖导航栏的整个宽度,它们滑向左侧并留下一个洞(最后一项是omega)。这可以使用列来完成吗,或者我只需要在没有列的情况下使用导航栏?在这个屏幕截图中,我将它们全部涂成灰色,以使其变得明显:

发布于 2013-03-21 23:19:37
Eric Meyer太棒了,他现在加入了一些东西来帮助你解决这个问题,史蒂夫-看看最新版本的Susy中的bleed。
我相信这会帮助你解决你的问题。它允许您执行以下操作:
.nav-item {
...
@include bleed(1 of 4);
}通读the update to susy with isolate & bleed
希望这能有所帮助!并感谢Eric在Susy上做了如此出色的工作:)
发布于 2012-10-21 04:34:33
如果你不需要水槽,你也不需要Susy的帮助--数学很简单:
.nav-item {
float: left;
width: percentage(4/24);
}仅此而已,但正如您所注意到的,由于亚像素舍入,在某些浏览器中会留下额外的空间。除了学习如何围绕它进行设计之外,亚像素舍入没有简单的解决方案。Susy将最后一列向右浮动,因为它更容易隐藏内部空间而不是边缘。
你的other option有点老生常谈,让你离得更近(但不是全部)。通过左对齐拉出所有列,您可以将它们推回原位,而不会让舍入误差累积。这样你就永远不会有超过1px的差距:
.nav-item {
float: left;
width: percentage(4/24);
// pull things flush left
margin-right: -100%;
// push things back into place
@for $i from 1 through 6 {
&:nth-child(#{$i}) { margin-left: percentage(($i - 1)*4/24); }
}
}当然,如果您支持较旧的浏览器,则可以使用类来代替:nth-child。如果你正在做任何类型的响应式设计,这是你能做的最好的。在响应式设计中,无法完全避免亚像素舍入。我强烈建议学习围绕这一点进行设计。
https://stackoverflow.com/questions/12991944
复制相似问题