我已经在这里发布了这个,但它仍然与原始问题相关。
我对列之间的空间也有类似的问题。根本问题是引导程序 3 和 4 中的列使用填充而不是边距。因此,相邻两列的背景颜色相互接触。
我找到了一个适合我们问题的解决方案,并且很可能适用于大多数尝试分隔列并保持与网格系统其余部分相同的装订线宽度的人。
这就是我们想要的最终结果
在列之间存在带有阴影的间隙是有问题的。我们不希望列之间有额外的空间。我们只是希望排水沟是“透明的”,这样网站的背景颜色就会出现在两个白色列之间。
这是两列的标记
<div class="row">
<div class="col-sm-7">
<div class="raised-block">
<h3>Facebook</h3>
</div>
</div>
<div class="col-sm-5">
<div class="raised-block">
<h3>Tweets</h3>
</div>
</div>
</div>
CSS
.raised-block {
background-color: #fff;
margin-bottom: 10px;
margin-left: 0;
margin-right: -0.625rem; // for us 0.625rem == 10px
padding-left: 0.625rem;
padding-right: 0.625rem;
}
@media (max-width: 33.9em){ // this is for our mobile layout where columns stack
.raised-block {
margin-left: -0.625rem;
}
}
.row [class^="col-"]:first-child>.raised-block {
// this is so the first column has no margin so it will not be "indented"
margin-left: -0.625rem;
}
这种方法确实需要一个带有负边距的内部 div,就像引导程序使用的“行”类一样。而这个 div,我们称之为“raised-block”,必须是列的直接兄弟
这样,您仍然可以在列内获得适当的填充。我已经看到似乎通过创建空间来工作的解决方案,但不幸的是,他们创建的列在行的任一侧都有额外的填充,因此它最终使行更薄,网格布局设计用于。如果您查看图像以获得所需的外观,这意味着两列一起将小于顶部的一列,这会破坏网格的自然结构。
这种方法的主要缺点是它需要额外的标记来包装每列的内容。对我们来说,这是可行的,因为只有特定的列需要它们之间的空间才能达到所需的外观。
希望这可以帮助