flex-grow

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.

flex-growCSS のプロパティで、フレックスコンテナー内の残りの空間が、どれだけフレックスアイテムの主軸方向の寸法に割り当てられるべきかを指定するフレックス伸長係数を設定します。

フレックスコンテナーの主軸方向の寸法が、フレックスアイテムの主軸方向の寸法の合計よりも大きい場合、余った空間はフレックスアイテムに分配され、各アイテムが伸びる大きさは、コンテナーのすべてのアイテムのフレックス伸長係数の合計の割合で按分した値になります。

試してみましょう

構文

css
/* <number> 値 */
flex-grow: 3;
flex-grow: 0.6;

/* グローバル値 */
flex-grow: inherit;
flex-grow: initial;
flex-grow: revert;
flex-grow: revert-layer;
flex-grow: unset;

flex-grow プロパティは単一の <number> として指定します。

<number>

<number> をご覧ください。負の値は無効です。既定値は 0 です。

解説

このプロパティは、フレックスコンテナー内の残りの空間のうち、どれだけがそのアイテムに割り当てられるか (フレックス伸長係数) を設定します。

主軸方向の寸法は、アイテムの幅または高さのどちらかで、 flex-direction の値に依存して決まります。

残りの空間とは、フレックスコンテナーの寸法からすべてのフレックスアイテムの寸法を引いたものです。すべての兄弟アイテムが同じフレックス伸長係数であった場合、すべてのアイテムには残りの空間が等しく割り当てられ、そうでなければ定義されたそれぞれフレックス伸長係数の比率に従って分配されます。

使用するにあたって、 flex-grow は他のフレックスプロパティである flex-shrinkflex-basis とともに使用され、通常はすべての値が設定されることを保証するために一括指定の flex を使用して定義します。

公式定義

初期値0
適用対象フロー内の擬似要素を含むフレックスアイテム
継承なし
計算値指定通り
アニメーションの種類数値

形式文法

flex-grow = 
<number [0,∞]>

フレックスアイテムの伸長係数の設定

この例では、 6 つのフレックスアイテムに合計 8 の伸長係数が配分されており、伸長係数 1 あたり余白の 12.5% になります。

HTML

html
<h4>これは Flex-Grow です</h4>
<h5>A、B、C、F は flex-grow:1 です。 D と E は flex-grow:2 です。</h5>
<div id="content">
  <div class="small" style="background-color:red;">A</div>
  <div class="small" style="background-color:lightblue;">B</div>
  <div class="small" style="background-color:yellow;">C</div>
  <div class="double" style="background-color:brown;">D</div>
  <div class="double" style="background-color:lightgreen;">E</div>
  <div class="small" style="background-color:brown;">F</div>
</div>

CSS

css
#content {
  display: flex;

  justify-content: space-around;
  flex-flow: row wrap;
  align-items: stretch;
}

.small {
  flex-grow: 1;
  border: 3px solid rgba(0, 0, 0, 0.2);
}

.double {
  flex-grow: 2;
  border: 3px solid rgba(0, 0, 0, 0.2);
}

結果

6 つのフレックスアイテムがコンテナーの主軸方向に配置されている場合、それらのフレックスアイテムの内容の主要部分の合計がコンテナーの主軸のサイズよりも小さいと、余分なスペースはサイズのフレックスアイテムに分配され、A、B、C、F はそれぞれ残りの空間の 12.5%、 D と E はそれぞれ残りの空間の 25% を取得します。

仕様書

Specification
CSS Flexible Box Layout Module Level 1
# flex-grow-property

ブラウザーの互換性

BCD tables only load in the browser

関連情報