Flexboxで枠間の余白を設定する - CSS

Flexboxで枠間の余白を設定する方法を紹介します。

概要

Flexboxで枠と枠の間に余白を開けるコードを紹介します。
Flexboxで枠と枠の間に余白を開ける場合は、margin プロパティを利用します。

実装例

コード

以下のCSS、HTMLを準備します。
flex-column-margin.css
.container {
  display: flex;
}

.frameA {
  border: 1px solid #e9006b;
  flex:1;
  margin: 0 1rem 0 1rem;
}

.frameB {
  border: 1px solid #ff6a00;
  flex: 1;
  margin: 0 1rem 0 1rem;
}

.frameC {
  border: 1px solid #d0b106;
  flex: 1;
  margin: 0 1rem 0 1rem;
}

.frameD {
  border: 1px solid #4aae20;
  flex: 1;
  margin: 0 1rem 0 1rem;
}

.frameE {
  border: 1px solid #01b9b3;
  flex: 1;
  margin: 0 1rem 0 1rem;
}
flex-column-margin.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title></title>
  <link rel="stylesheet" href="flex-column-margin.css" />
</head>
<body>
  <div class="container">
    <div class="frameA">1番目のコンテンツ<br />あいうえお<br />かきくけこ</div>
    <div class="frameB">2番目のコンテンツ<br />αβγ<br /></div>
    <div class="frameC">3番目のコンテンツ<br />ABCDE<br />FGHIJK</div>
    <div class="frameD">4番目のコンテンツ<br />いろはに<br />ほへと</div>
    <div class="frameE">5番目のコンテンツ<br />12345<br />67890</div>
  </div>
</body>
</html>

解説

枠のクラスの設定部分の margin プロパティにより枠同士の余白が開けられる設定になります。
下記のコードでは、top, bottom の値は0になっていますが、left, right のマージンが 1rem に設定されており、 枠と枠の間は2rem開く表示になります。
.frameA {
  border: 1px solid #e9006b;
  flex:1;
  margin: 0 1rem 0 1rem;
}

表示結果

上記のHTMLファイルをWebブラウザで表示します。下図のページが表示されます。枠と枠の間は2rem空いて表示されています。


ウィンドウ幅を広げます。枠の大きさは広がりますが、枠の間は2remの余白が空いた状態で表示されます。


枠のマージンの状態を確認します。開発者ツールで枠を選択します。左右に1remのマージン(オレンジ色の領域)がとられていることが確認できます。


一つとなりの枠のマー人の状態も確認します。こちらも、左右に1remのマージン(オレンジ色の領域)がとられていることが確認できます。
枠は横方向での段組みとなるため、マージンの相殺は発生せず、それぞれの枠が左右に1remのマージンを取るため、枠と枠の間は2rem余白がとられて 表示される動作となります。

補足 : マージンが無い場合

なお、CSSを下記に変更し、マージンを指定しない場合は下図の表示となります。
flex-column-margin.css
.container {
  display: flex;
}

.frameA {
  border: 1px solid #e9006b;
  flex:1;
}

.frameB {
  border: 1px solid #ff6a00;
  flex: 1;
}

.frameC {
  border: 1px solid #d0b106;
  flex: 1;
}

.frameD {
  border: 1px solid #4aae20;
  flex: 1;
}

.frameE {
  border: 1px solid #01b9b3;
  flex: 1;
}

枠と枠の間の余白は無い表示となります。

著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
掲載日: 2021-05-06
iPentec all rights reserverd.