###こんにちは!ばーんです。
※この記事は主に初学者の方への記事となっています
今回はflexboxのメリットについてお話しします。
2019年以降にプログラミング学習されてる方の、多くはprogateを利用されてきたと思います。
そこでは、inline-blockやfloat、positionによる配置変更がメインなので、
flexboxに触れる機会が少なかったのでは?と思います(名前は知ってるはあるかもですが)。
自分自身も「知ってた方がいいよ〜」とは言われるものの、正直inline-block等でできなくもないので今まで使用してきませんでした。
なので今回は使ってみてどういったメリットがあるのか調べていきます
3つのパターンで検証します。
1、要素の配置
2、子要素の変更
3、レスポンシブ対応
※記事の最後に使用したcodepen記載しています
####1、要素の配置
これは結論からいいます。正直ほとんど変わりませんでした
各工程で写真撮ったり、時間計ったり、行数比べましたが殆ど一緒。
ただし、これを見てる方は初学者の方だと思うので、自分も躓いたところ書いておきます。
・指定の仕方(.proflieは親要素です)
色んなQiita見ましたが、親要素にdisplay:flex指定としか書いてないので、てっきりflex-direction: column;とかは、子要素に書くものだと思ってました…
・要素の内容(左:flex指定前 右:指定後)
指定するとinline-blockのように横は指定したサイズになります(左はblock要素なので横幅いっぱいとってますね)
####2、子要素の変更
これもあまり差は見られませんでしたが、冷静に考えれば要素が少なかったのが要因です。
ただ、現状の知識でも処理できなくはないので、それほど大きいメリットとは感じませんでした。
####3、レスポンシブ対応
ここが一番差がでました(というより実践ではでると思います)。
レスポンシブにするとデザインが大きく変わります。その中で配置変更したいと思うことはあります。
今までの知識の場合、かなり労力を使いますが、配置の順序も変えれるのでかなり便利ですね。
###僕が感じた大きいメリット2つ
・上にも記述していますが、配置変更が容易なのは嬉しいですね!
・スマホ社会(縦画面が一般的)の現状で、回り込まない!
これ少し解説すると↓をご覧ください(上:flex 下:inline-block)
これ、3つの要素全てwidth34%で指定しています。また、レスポンシブで要素5、6を消してます。
ご覧の通り絶対回り込みません(全体的に少し短くなります)。
基本的には崩れない方がいいですが、崩れた時を考えると上の方がいいかなーと思います。
###【結論】知っておいた方が良いレベル。
ただし、わざわざ時間をかけてみっちり習得しなくてもよい。もちろん新しい技術なので、今から覚える人にはこっちの方をお勧めします。書いてる通りデメリットは特に見当たらなかったので。
(できることを知っておいて、実践の中で覚えていく程度でいいと思います)
(上:inline-block 下:flex ご自由にご使用下さい^^)
See the Pen inline-block by hashibadaiki (@hashibadaiki) on CodePen.
See the Pen flex by hashibadaiki (@hashibadaiki) on CodePen.