Flexboxでspace-between使用時の最後の要素の位置を指定する

Flexboxを使う時、要素の並び方を指定する「justify-content : space-between」をよく使う。
しかし最後の行のflexアイテム数によって並び方が異なるのでその辺の指定方法の覚え書き。
※各アイテムはレスポンシブで、ウィンドウ幅が縮んでもレイアウトはそのままとする

##はじめに
justify-content : space-between を使うメリット（多分）

・flexアイテムにいちいちマージンを指定しなくても左右の隙間が空けられる。
flexアイテムの左右マージンを考えて配置するのが面倒だと思っている。左右マージンを指定する為、親コンテナのpaddingを調整しないといけなかったりする。またcalcを使ったりしてマージンを含めた幅を計算するのもしんどい。

なのであえて、flexアイテムの左右マージンを気にしない「justify-content : space-between」での並べ方を考えてみる。


##最後の行の要素数が1つで、左寄せにしたい（デフォルト）
普通にCSSを指定する。

<p class="codepen" data-height="265" data-theme-id="light" data-default-tab="css,result" data-user="yoshi090" data-slug-hash="VwjLGwr" style="height: 265px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="VwjLGwr">
  <span>See the Pen <a href="https://codepen.io/yoshi090/pen/VwjLGwr">
  VwjLGwr</a> by yoshida (<a href="https://codepen.io/yoshi090">@yoshi090</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>

##最後の行の要素数が1つで、中央寄せにしたい
最後の要素に「margin: 0 auto;」を指定する。

<p class="codepen" data-height="265" data-theme-id="light" data-default-tab="css,result" data-user="yoshi090" data-slug-hash="PozqdZy" style="height: 265px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="yoshi_201012_2">
  <span>See the Pen <a href="https://codepen.io/yoshi090/pen/PozqdZy">
  yoshi_201012_2</a> by yoshida (<a href="https://codepen.io/yoshi090">@yoshi090</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>

##最後の行の要素数が2つで、左寄せにしたい
###デフォルの指定だと以下のような見た目
・こういうレイアウトはほぼ使わない。
<p class="codepen" data-height="265" data-theme-id="light" data-default-tab="css,result" data-user="yoshi090" data-slug-hash="abZOapW" style="height: 265px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="yoshi_201012_3">
  <span>See the Pen <a href="https://codepen.io/yoshi090/pen/abZOapW">
  yoshi_201012_3</a> by yoshida (<a href="https://codepen.io/yoshi090">@yoshi090</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>

###「justify-content:flex-start」か空要素を作る
・以下は空要素を作成する方法。
<p class="codepen" data-height="265" data-theme-id="light" data-default-tab="css,result" data-user="yoshi090" data-slug-hash="dyXoqvd" style="height: 265px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="dyXoqvd">
  <span>See the Pen <a href="https://codepen.io/yoshi090/pen/dyXoqvd">
  dyXoqvd</a> by yoshida (<a href="https://codepen.io/yoshi090">@yoshi090</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>

##最後の行の要素数が2つで、中央寄せにしたい
####あえて「justify-content:space-between」を指定するやり方
親コンテナ等に均等に配置したい場合など使えるかも。
普通は「justify-content:center」でflexアイテムにマージンを指定し、左右空けると思う。
<p class="codepen" data-height="265" data-theme-id="light" data-default-tab="css,result" data-user="yoshi090" data-slug-hash="QWEbZLE" style="height: 265px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="yoshi_201012_5">
  <span>See the Pen <a href="https://codepen.io/yoshi090/pen/QWEbZLE">
  yoshi_201012_5</a> by yoshida (<a href="https://codepen.io/yoshi090">@yoshi090</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://static.codepen.io/assets/embed/ei.js"></script>

##まとめ
今回のやり方は無理やりであり、一応こうやればflexアイテムの左右マージンになるべく囚われることなく配置できますよというものです。
みんなどうやってんだろ…