display: flex;の子要素を横並びで均等幅に配置する方法と余白設定について【CSS】

最終更新日:

公開日:2025-01-29

ページ内に広告が含まれています。
display: flex;の子要素を横並びで均等幅に配置する方法と余白設定について【CSS】

display: flex;を使っていると横並びにしたリストやメニューなど、均等に配置したい場合があるかと思います。
そんな時にいちいち横幅設定するのも面倒です。今回は均等幅で配置する方法と余白設定について解説していきますので、しっかりと覚えてください。

display: flex;とは

display: flex;とは、指定した要素の子要素に対する表示方法を示すプロパティ+値です。
よくFlexbox(フレックスボックス)とかフレキシブルボックスとか言われていて、今は馴染みのあるプロパティかとも思います。

今回はこのFlexboxを使った要素の均等幅での配置と余白設定についてと実際の使用例も合わせて解説していきます。

横並びと均等配置について

まずは要素を横並びにする方法ですが、単純に横並びにしたいだけであれば、以下のように親要素にdisplay: flex;を指定するだけです。

<ul>
    <li>子要素1</li>
    <li>子要素2</li>
</ul>
ul {
    display: flex;
    background-color: #F4F4F4;
}
li {
    padding: 15px;
}
li:nth-child(1) {
    background-color: #FCD;
}
li:nth-child(2) {
    background-color: #DFC;
}
  • 子要素1
  • 子要素2

上記のように、display: flex;を指定した要素の子要素が横並びになっています。
このままでは非常に使い勝手が悪いので、これを均等幅での配置にしてみます。均等幅で配置するにはCSSを以下のように変更します。

ul {
    display: flex;
    background-color: #F4F4F4;
}
li {
    text-align: center;
    flex: 1;
    padding: 15px;
}
li:nth-child(1) {
    background-color: #FCD;
}
li:nth-child(2) {
    background-color: #DFC;
}
  • 子要素1
  • 子要素2

このように子要素(今回の場合はli)に対してflex: 1;を指定すると均等幅での配置になります。

flexプロパティとは

flexプロパティとは、flex-growflex-shrinkflex-basisの3つのプロパティをまとめたショートハンド(省略形)です。
これらのflex-growflex-shrinkに「1」、flex-basisに「0」を指定したものがflex: 1;となります。
今回は詳しくはふれませんが、後日詳しく解説していきます。

余白設定について

次に、Flexboxでの余白設定となります。
デザインによってはこのままではあまり汎用性もなく見難くなりますので、余白を入れていきます。Flexboxで余白を入れるにはgapプロパティを使用します。

ul {
    display: flex;
    gap: 20px; /* 追加した部分 */
    background-color: #F4F4F4;
}
  • 子要素1
  • 子要素2

上記のように、gapプロパティを指定しただけで余白を設定する事ができます。
下記で解説でしますが、gapプロパティを使うと要素同士の余白となりますので、無駄に下側や右側に余白付くことがありません。

gapプロパティとは

gapプロパティは、row-gapプロパティとcolumn-gapプロパティのショートハンド(省略形)となり。要素同士の上下左右の余白を指定出来ます。
例えば、gap: 20px;で上下左右の要素との余白を20pxずつ、gap: 20px 10px;で上下20px・左右10pxの余白となります。

今までだとmarginで指定し最後の要素だけmargin: 0;など指定する事が多かったと思います。
これだとレスポンシブ時に横並びの要素の数を変更する度にCSSを追加、といった作業が発生しましたが、gapプロパティだと要素と要素の余白になるのでカラム落ちや余計な手間が無くなるのでとても楽になります。

さいごに

いかがでしたでしょうか。
今回は、display: flex;の子要素を横並びで均等幅に配置する方法と余白設定について解説しました。
Flexboxを使用したレイアウトは非常に使い勝手がよく、かなり使用しますのでこの機会にしっかりと覚えておく事をオススメします。

おすすめ記事

当ブログ運営者 ヒデ

北海道札幌市在住のフリーランスでWeb制作を行っているヒデです。Webコーディング(HTML・CSS・JSなど)やWordpressのカスタマイズ等のテクニック、困った時に確認できる分かりやすい解説を目標にして情報を発信していければと思っています。プロフィールはこちら

当サイトに関するご意見・ご感想・ご要望または仕事のご依頼は以下のフォームよりお願い致します。

お問い合わせ お仕事のご依頼

各SNSのフォローはこちらから

PAGE TOP