Flexboxでのレイアウト

カテゴリ:インターン生ブログ

公開日:2020.06.19 最終更新日:2020.07.03
このエントリーをはてなブックマークに追加

こんにちは!インターン生の西です!今回はレイアウトをする上でとても便利な機能であるFlexboxについて紹介していきたいと思います!

1.Flexboxとは

Flexboxとは「Flexible Box Layout Module」の略のことであり、複雑なレイアウトも簡単に組める書き方です。

2.Flexboxの書き方

例えば、画像にあるような縦に三つ並んだボックスを横並びにしたい場合の記述を紹介します。

FlexboxではFlexを適応させた親要素が「flexコンテナ」になり、その子要素が自然と「flexアイテム」となることによって設定したflexプロパティに対応したレイアウトができます。ここでは「container」のCSSに記述していきます。例えば、「container」の親要素に記述してしまったらFlexboxは適応されないので注意しましょう!

2.Flexプロパティの種類

Flexプロパティにはたくさんの種類がありますが、今回はいくつか紹介したいと思います。

・flex-direction

row
子要素を左から右に配置
row-reverse子要素を右から左に配置
column子要素を上から下に配置
column-reverse子要素を下から上に配置

例えば、「row-reverse」を適応させたら画像のように子要素が右から左へ並ぶようになります。

・justify-content

flex-start左揃え
flex-end右揃え
center中央ぞろえ
space-between最初と最後の子要素を両端に配置し、残りの要素は均等に間隔をあけて配置
space-around全ての要素を均等に間隔をあけて配置

ここで、よく使うのが「center」「space-between」「space-around」です。今回は「space-between」を例に挙げてみましょう。

Flexプロパティは他にもたくさん種類があり、とてもレイアウトがしやすくなっています。

3.最後に

Flexboxは非常に便利ですが、気を付けることはあります。例えば、たくさんの要素を「align-content」というプロパティで複数行にわたって調整するときに「flex-wrap: nowrap ;」(子要素を折り返しせず、一行に並べる)が適応されていたら、「align-content」が無効になってしまうため、下の画像のように要素が横並びになってしまいます。


この場合、「flex-wrap」プロパティのwrap(子要素を折り返し、複数行に上から下へ並べる)という値を記述してあげれば下のように「align-content」が適応されます。

このように対立する機能を持つプロパティを重複させないということに気を付けましょう!そして、flexプロパティを適応させたい要素の親要素に記述するということも忘れないでください!

一覧へ戻る