列間のスペースに関しても同様の問題がありました。根本的な問題は、ブートストラップ3と4の列がマージンではなくパディングを使用していることです。したがって、2つの隣接する列の背景色は互いに接触しています。
私の問題に合った解決策を見つけました。列の間隔を空けて、他のグリッドシステムと同じ幅の幅を維持しようとするほとんどの人にとって、おそらくうまくいくでしょう。
これが最終的な結果でした
列間にドロップシャドウのギャップがあると問題がありました。列の間に余分なスペースは必要ありませんでした。ガターを「透明」にして、サイトの背景色が2つの白い列の間に表示されるようにしました。
これは2つの列のマークアップです
<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は「レイズドブロック」と呼ばれ、列の直接の兄弟でなければなりません。
この方法でも、列内に適切なパディングが得られます。スペースを作成することで機能するように見えるソリューションを見たことがありますが、残念なことに、それらが作成する列には行の両側に余分なパディングがあり、グリッドレイアウトが設計されたように行が細くなってしまいます。画像を希望の外観で見ると、2つの列を合わせると、1つの大きい列よりも小さくなり、グリッドの自然な構造が崩れます。
このアプローチの主な欠点は、各列のコンテンツをラップする追加のマークアップが必要になることです。私たちにとってこれは機能します。特定の列だけが目的の外観を実現するために列の間にスペースを必要としたためです。