Written by Kasumi

flexboxで比率を維持したままレスポンシブに拡大縮小可能な横並びレイアウトを作ってみよう

一覧ページやギャラリーページでflexboxを用い、要素を均一に横並びさせたい。。
カラム落ちせず比率を維持したまま、レスポンシブに対応できるようにしたい。
要素を等間隔に空けたい。。

このような疑問に答えます!

本記事では、flexboxを用いてカラム落ちせず横並び・比率を維持したまま、レスポンシブに対応させる方法について解説します。

まずは以下ソースをコピペして動作を確認しよう

上記ソースにhtml、cssで例を書きました。
flexboxという要素に対してその子要素が横並び3列を維持したまま拡大縮小できるようになってます。
親要素はそのままコピペしてもらって子要素のflex: 0 0 32%;の32の部分を変更することで3列、4列、5列…などに列変更できます。
(今回の例だと3列なので100÷3=33.333333% 要素の間を少し空けたいので32%にしてます。)

以下コードペンデモです。

See the Pen フレックスボックス by Kohei (@kouk05) on CodePen.default

先ほどのソースにプラスしてボタンをつけてます。
フレックスボックスを縮小していくと段ズレが発生して見映えが悪くなる場合があります。
その場合の解消方法ですが
親要素にflex-direction: column;を追加
子要素にheightを指定。
子要素内の一番最後の要素(今回の場合はボタン)にmargin-top: auto;を追加
 以上で段ズレ解消です!
※子要素の高さを指定しましたがその高さを超えてしまうとはみ出してしまうのでブレイクポイントなどで調整しましょう!

目次

関連記事

HTMLCSS

【画像卒業】CSSだけで平行四辺形を作る方法

2022.07.05
1592
HTMLCSS

CSSだけでborder線にグラデーションを入れる方法【角丸も付ける】

2022.06.17
1673
HTMLCSS

CSSで背景の半分だけ単色もしくは画像を指定する方法

2022.12.16
1005
HTMLCSS

【CSS3】アニメショーンプロパティを使いこなそう!

更新日:2019.11.28
426