Flexbox で Flex プロパティを全く指定しない場合の動作 - CSS

Flexbox で Flex プロパティを全く指定しない場合にどのような動作になるのか紹介します。

コード

下記のコードを記述します。
no-flex-value.html
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
  <link rel="stylesheet" href="no-flex-value.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>
no-flex-value.css
.container {
    display: flex;
}

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

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

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

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

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

解説

display: flex; プロパティを設定した container クラスのdivタグ内に5つのdiv枠を配置しています。枠のクラスはそれぞれ、"frameA", "frameB", "frameC", "frameD", "frameE" としています。container 内部の枠には、flexプロパティ(flex-grow, flex-shrink, flex-basis) の値は設定しないものとします。

表示結果

上記のhtmlをWebブラウザで表示します。下図のページが表示されます。5つの枠幅が同じ幅で表示されています。


ウィンドウ幅を広げると枠の幅も広がります。行の途中で改行されていた箇所が改行されない状態になります。


枠内の文字列の折り返しが不要になった状態より枠の幅は広がりません。ウィンドウ幅を広げると、すべてのテキストを折り返しなく表示できるサイズ以上に枠の幅は広がらないため、ページの右側の領域に余白ができます。




枠を縮めた場合は、等間隔の枠幅で縮まりページ内容が表示されます。


Flexプロパティが指定された場合と動作が異なることが確認できます。
著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
最終更新日: 2018-09-18
作成日: 2018-09-18
iPentec all rights reserverd.