単純な横並び

row というクラスの div の中に col というクラスの div を並べます。
クラスの命名には行を表す row と、列を表す col がよく使われています。

HTML

<div class="row">
	<div class="col">col</div>
	<div class="col">col</div>
	<div class="col">col</div>
</div>

CSSは row に display:flex を指定します。
col の width は 100% にします。

CSS

.row { display: flex; }
.col { width: 100%; }

これだけで横サイズぴったりに納まります。
今回は div は3つだけですが、4つでも5つでもこのスタイルで大丈夫です。Flexすごい!
省略していますが、サポートブラウザによってはプレフィクスを付与してください。

マージン・溝を設定する

divとdivの間を開けたいといったことはよくありますね。
マージンを設定してみましょう。

間隔を空けたい場合は margin-left を設定します。
col に空けたい数値を入れ、row には同じ値をマイナス値で入れます。

CSS

.row {
	display: flex;
	margin-left: -20px;
}
.col {
	width: 100%;
	margin-left: 20px;
}

レスポンシブに対応する

やっぱり最近はレスポンシブな作りにしなくてはいけませんね。
メディアクエリで狭い画面のときは1カラムにしてみましょう。

CSS

@media screen and (max-width: 540px) {
	.row { flex-wrap: wrap; }
}

flex-wrap:wrap を指定することで col に指定した width:100% が生き横並びしなくなります。

レスポンシブのときカラム数を制御する

小さい画面の時も2列や3列にしたい時があります。
基本的には col のサイズを指定することになります。

CSS

@media screen and (max-width: 540px) {
	.row { flex-wrap: wrap; }
	.col-sm-50 {  width: 50%;  }
	.col-sm-40 {  width: 40%;  }
	.col-sm-33 {  width: 33.33333333%;  }
	.col-sm-20 {  width: 20%;  }
	.col-sm-10 {  width: 10%;  }
}

HTML

<!-- モバイルでは2分割 -->
<div class="row">
	<div class="col col-sm-50">col</div>
	<div class="col col-sm-50">col</div>
	<div class="col col-sm-50">col</div>
	<div class="col col-sm-50">col</div>
</div>
<!-- モバイルでは3分割 -->
<div class="row">
	<div class="col col-sm-33">col</div>
	<div class="col col-sm-33">col</div>
	<div class="col col-sm-33">col</div>
	<div class="col col-sm-33">col</div>
	<div class="col col-sm-33">col</div>
	<div class="col col-sm-33">col</div>
</div>

rowから分割数を指定

均等の分割なら親の row で分割数指定した方がスマートに書けそうですね。
あと calc を使えば計算もしてくれます。

CSS

@media screen and (max-width: 540px) {
	.row-sm-blocks-2 > .col { width: calc( 100% / 2); }
	.row-sm-blocks-3 > .col { width: calc( 100% / 3); }
	.row-sm-blocks-4 > .col { width: calc( 100% / 4); }
}

※ calc( 100% / 3) などおそらく割り切れないものはIE11で正常に計算されないようで、コンテナのwidthによっては崩れます。

HTML

<!-- モバイルでは2分割 -->
<div class="row row-sm-blocks-2">
	<div class="col">col</div>
	<div class="col">col</div>
	<div class="col">col</div>
	<div class="col">col</div>
</div>

レスポンシブのときマージン・溝を設定したい

最後にレスポンシブのときもマージンを設定しています。
これは col に calc でマイナス値を追加するだけです。

CSS

.row {
	display: flex;
	margin-left: -20px;
}
.col {
	width: 100%;
	margin-left: 20px;
}
@media screen and (max-width: 540px) {
	.row { flex-wrap: wrap; }

	.col-sm-50 {  width: calc( 50% - 20px ); }
	.col-sm-40 {  width: calc( 40% - 20px ); }
	.col-sm-33 {  width: calc( 33.33333333% - 20px );  }
	.col-sm-20 {  width: calc( 20% - 20px );  }
	.col-sm-10 {  width: calc( 10% - 20px );  }

	.row-sm-blocks-2 > .col { width: calc( (100% / 2) - 20px ); }
	.row-sm-blocks-3 > .col { width: calc( (100% / 3) - 20px ); }
	.row-sm-blocks-4 > .col { width: calc( (100% / 4) - 20px ); }
}

もっと上手いやり方があるかもしれませんが、以上です。