204 of 313 menu

flex-growプロパティ

flex-growプロパティは、 必要に応じて、個々のflexブロックが 隣接する要素よりもどれだけ大きく なれるかを決定します。

例えば、flexコンテナ内のすべてのflexブロックが flex-grow:1の場合、それらは同じ サイズになります。もしそのうちの1つが flex-grow:2 の場合、 それは他のすべての要素よりも 2倍大きくなります。

要素の合計幅が 親要素の幅よりも小さい場合、右側に 空きスペースが残ります。必要に応じて、この空きスペースを 要素間で比例的に分割することができます。 これは、flexアイテムに設定する flex-growプロパティで行います。この プロパティの値は無次元の数値です。

適用対象: 個々のflexブロック。

このプロパティは、一括指定プロパティである flexの一部です。

構文

セレクター { flex-grow: 正の数; }

デフォルト値:0

ここに幅 100pxの2つのflexブロックがあります。要素の合計幅は 200pxで、親要素の幅は300pxです。 つまり、100pxの空きスペースが 残ります。

要素にflex-growが設定されていない場合、 この空きスペースはそのまま表示されます。 設定されている場合、要素の実際の幅は 指定された値よりも大きくなります - 要素は空きスペースを 比例的に分配し、 それを自身の幅に加えます。

例として、最初の要素のflex-grow1、2番目の要素を3としましょう。 各要素が空きスペースを どれだけ受け取るか計算してみましょう。

まず、すべての要素の flex-growの合計単位を求めます。 最初の要素は1、 2番目の要素は3です。つまり、合計は 4です。

次に、100pxの空きスペースを 4で割ると、flex-grow1単位あたり 25pxになります。したがって、 最初の要素には1単位の flex-grow、つまり25pxが加わり、 2番目の要素には3単位、 つまり75pxが加わります。

最初の要素の幅は125pxに、 2番目の要素の幅は175pxになります:

<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> </div> .parent { display: flex; width: 300px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 100px; flex-grow: 1; } .elem2 { width: 100px; flex-grow: 3; }

:

親要素の幅を400px、 最初の要素の幅を200px、 2番目の要素の幅を100pxとしましょう。 空きスペースは再び 100pxになります。

各要素にflex-grow1に設定しましょう。合計は2なので、 100pxの空きスペースを 2で割る必要があります。つまり、 「貪欲さ」の1単位あたり50pxとなります。

すべての要素が同じ値の flex-growを持つため、すべての要素に同じ値の 50pxが加わります。つまり、 最初の要素は250pxに、 2番目の要素は150pxになります:

<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> </div> .parent { display: flex; width: 400px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 200px; flex-grow: 1; } .elem2 { width: 100px; flex-grow: 1; }

:

再び親要素の幅を400px、 最初の要素の幅を200px、 2番目の要素の幅を100pxとしましょう。

最初の要素の flex-grow3、2番目の要素を 1に設定しましょう。貪欲さの合計は 4になります。すると、貪欲さ1単位は 100px / 4 = 25pxとなります。

最初の要素に75pxが加わり、 275pxになります。2番目の要素には 25pxが加わり、125pxになります:

<div class="parent"> <div class="child elem1">1</div> <div class="child elem2">2</div> </div> .parent { display: flex; width: 400px; height: 200px; border: 1px solid red; } .child { height: 50px; border: 1px solid green; } .elem1 { width: 200px; flex-grow: 3; } .elem2 { width: 100px; flex-grow: 1; }

:

関連項目

  • flexブロックの軸の方向を設定するプロパティ flex-direction
  • 主軸方向の揃えを設定するプロパティ justify-content
  • 交差軸方向の揃えを設定するプロパティ align-items
  • flexブロックの折り返しを設定するプロパティ flex-wrap
  • flex-directionとflex-wrapの一括指定プロパティ flex-flow
  • flexブロックの順序を設定するプロパティ order
  • 単一ブロックの揃えを設定するプロパティ align-self
  • 個々のflexブロックのサイズを設定するプロパティ flex-basis
  • flexブロックの縮小率を設定するプロパティ flex-shrink
  • flex-grow、flex-shrink、flex-basisの一括指定プロパティ flex
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否