0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

widthが100%をオーバーするとき(flex-wrap神)

Last updated at Posted at 2020-11-29

親要素に対して、子要素の幅が100%を超えるときの挙動の整理のため執筆しています。
※codepenですが、0.5×で見ていただくと綺麗にみることができます。

パターン1 | 親要素が600pxで子要素を50%ずつにする。

Frame 1.png

これは非常にシンプルです。
青セクションと赤セクションが半分になっていますね。

See the Pen widthが100をオーバーするとき by TakahiroOkada (@okalog) on CodePen.

パターン2 | 子要素間に余白を持たせたい場合。

codepenを見てもらえば分かりますが、文字がつまっていて読みづらいですよね。
多くの方は要素間にmarginやpaddingで余白を持たせると思います。

Frame 2.png

これを行おうと、このようなコードを書いてみました。

sytle.css
.left{
  width:50%;
  background-color:#B0C2FF;
}
.right{
  width:50%;
  margin-left:50px;
  background-color:#FFA7A7;
}

結果はこうなります。

See the Pen width整理-2 by TakahiroOkada (@okalog) on CodePen.

親要素に対して、,子要素が100%を超えてしまったのでずれてしまっていますね。

パターン3 | widthにcalc指定をして子要素の大きさ100%に調整する。

CSSには、calc()という便利な機能があります。
参考(https://coliss.com/articles/build-websites/operation/css/how-calc-works-by-ire.html)

これを利用し子要素を100%になるように調整します。

See the Pen width整理-3 by TakahiroOkada (@okalog) on CodePen.

子要素が親要素に対して100%になりましたね。

番外編

実は最初flex-wrap:wrap;の指定なし、calc指定なし、margin-left:50px;だけでも綺麗にコンテナに収まっていました。

これはflex-wrapのデフォルトがno-wrapになっていたことで、コンテナからはみ出さないように指定されていたようです。
参考(https://developer.mozilla.org/ja/docs/Web/CSS/flex-wrap)
頭いいですよね。

See the Pen KKgwraz by TakahiroOkada (@okalog) on CodePen.

まとめ

いやー結構曖昧に使っていたので整理されてよかったです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?