ZeroPlus Gateについて

\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > Web制作 > HTML/CSS > 【CSS】flex-growの使い方!flexアイテムの大きさを倍率で指定する方法を解説

【CSS】flex-growの使い方!flexアイテムの大きさを倍率で指定する方法を解説

HTML/CSS

2022/05/03

2023/05/06

flex-grow記事サムネイル

flex-grow は、flexアイテムの比率を指定できるプロパティです。flexアイテムの伸長を width や height を使用するよりも自在に操ることができるため、効率的なコーディングに有用です。

この記事では flex-grow の使い方を解説します。

この記事で身につく内容
  • flex-grow とは
  • flex-grow の使い方
  • flex-grow に関連するプロパティ

flex-grow は、flexboxプロパティの一種です。flexboxはCSSのレイアウト作成に効果的な手法ですが、学習が難しいと感じる場合もあるのではないでしょうか。

flexboxについては、こちらの記事で詳しく解説しています。flexboxプロパティを網羅した内容となっているので、ぜひ学習にお役立てください。

ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

flex-growとは

flex-grow は、flexアイテムの比率を決めるプロパティです。flexコンテナ内に余白があるとき、余白部分をflexアイテムに指定した比率の分だけ追加します。

例えばflexコンテナ内に2つのflexアイテムがあり、それぞれ flex-grow: 1;flex-grow: 2; と指定したとします。

この場合、flexコンテナの余白部分はflexアイテムの横幅に追加され、flexアイテムは 1 : 2 の割合で表示されます。

flex-growの解説画像

flex-growの使い方

flex-grow はflexアイテムに対して有効であるため、flexコンテナ(親要素)に display: flex; を、flexアイテム(子要素)に flex-grow をそれぞれ指定します。

以下が基本形です。

<div class="flexbox">
  <div class="item01">flex-grow: 1;</div>
  <div class="item02">flex-grow: 2;</div>
</div>
.flexbox {
  display: flex;
}

.item01 {
  flex-grow: 数値;
}

初期値は0で、負の値や少数の指定も可能です。

それでは、実際の出力結果を確認してみましょう。

まずは flex-grow を使用しない場合の出力結果です。

<div class="flexbox">
  <div class="item01">flex-grow: 1;</div>
  <div class="item02">flex-grow: 2;</div>
</div>
.flexbox {
  display: flex;
  text-align: center;
  border: 1px solid #000;
}

.flex-item {
  color: #fff;
  width: 20%;
}

.item01 {
  background: red;
}

.item02 {
  background-color: blue;
}

flex-growの初期値

flexアイテムが左寄せで並び、親要素の右側には余白が空いています。この余白の部分を、任意の比率でflexアイテムに追加するのが flex-grow の働きです。

flex-grow を使用したとき、実際にどう変化するのかを見ていきましょう。

<div class="flexbox">
  <div class="item01">flex-grow: 1;</div>
  <div class="item02">flex-grow: 2;</div>
</div>
.flexbox {
  display: flex;
  text-align: center;
  border: 1px solid #000;
}

.flex-item {
  color: #fff;
  width: 20%;
}

.item01 {
  background: red;
  flex-grow: 1;
}

.item02 {
  background-color: blue;
  flex-grow: 2;
}
flex-growを指定したときの出力結果

flexコンテナ内の余白部分は、flexアイテムに追加されました。

ピンク色の要素には flex-grow: 1; を、水色の要素には flex-grow: 2; をそれぞれ指定しました。このため、2つの要素の比率は 1 : 2 となっています。

なお、flex-grow: 0;(初期値)のとき、flexアイテムの横幅はそれぞれの最小の幅となります。flexアイテム中のテキストが2文字の場合は2文字分の横幅、4文字の場合は4文字分の横幅となることに注意しましょう。

flexアイテムの主軸・クロス軸

今回の例では flex-direction の値が row (横並び)のため横幅が伸長しましたが、column (縦並び)の場合は高さが伸長します。

flex-direction によるflexアイテムの並ぶ向きのことを「主軸」といい、主軸と交差する向きを「クロス軸」といいます。

主軸とクロス軸については flex-direction を学習すると理解しやすくなります。こちらの記事で、flex-direction について詳しく解説しています。併せて学習してみましょう。

ZeroPlusgate50教材の動画

flex-growに関連するプロパティ

flex-grow には、関連するプロパティがあります。それぞれを理解しておくと学習しやすいので、セットで学習しましょう。

flex-growと関連するプロパティは以下のとおりです。

flex-growに関連するプロパティ
  • flex-shrink
  • flex-basis
  • flex

 

flex-shrink

flex-shrink は、flexアイテムの伸縮率を決めるプロパティです。flex-grow では伸び率を指定できるのに対して、flex-shrink では縮み率を指定できます。

flexアイテムは、親要素の幅をはみ出したときに自動的に縮小し、均等な大きさになる性質があります。flex-shrink を使うことで、はみ出した部分を縮小させたり、わざとはみ出させたりすることができます。

flex-shrink についてはこちらの記事で詳しく解説しています。併せてお読みください。

flex-basis

flex-basis はflexアイテムの大きさを指定するプロパティです。flexアイテムの横幅もしくは高さを指定できるので、width や height を使用するよりも簡単にflexアイテムの大きさを変更できます。

flex-basis で指定した大きさは、flex-grow や flex-shrink の基準の値となります。

flex-basisについては、こちらの記事でより詳しく解説しています。併せてお読みください。

flex

flex は、flexアイテムの大きさをショートハンドで指定できるプロパティです。

flex の値の意味や、指定する個数や単位によって変わります。例えば flex: 1; とした場合は flex-grow: 1; と同じ意味になり、flex: 40%; とした場合は flex-basis:  40%; という意味になります。

flex-grow  , flex-shrink , flex-basis の3つをショートハンドで指定することもできるので、使いこなせばコーディングの効率を上げられます。

flex についてはこちらの記事で詳しく解説しております。併せてお読みください。

ZeroPlusgate50教材の動画

まとめ

flex-grow はflexアイテムの大きさを伸長させるプロパティです。flexアイテムの大きさそのものが変わるわけではなく、親要素に余白がある場合に、その余白部分を指定した比率でflexアイテムに反映します。

flex-grow は特定のflexアイテムだけを大きくしたいときやレスポンシブ対応時などに大きく役立つので、使いこなしていきましょう。

flex-growまとめ

  • flexアイテムを伸ばすプロパティ
  • display:flex; と併用する
  • 親要素の余白を指定したflexアイテムに追加する
ZeroPlus Gateについて

プログラミング学習でこのような経験はありませんか?

  1. 目標に向けて何を学べば良いかわからない
  2. 調べても解決策が見つからない
  3. 現場レベルのスキルが身につくのか不安

これらの悩みは、学習環境を整えることで全て解決することができます。

ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

  1. なんでも相談できる専属メンター
  2. いつでも技術相談ができるプロ講師
  3. 元IT企業CTO監修のカリキュラム

条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。

少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

今すぐZeroPlus Gateの詳細を見る

\ 学んだことをSNSでシェアしよう /

おすすめのタグ

この記事の執筆者

ZeroPlus Media変種部

ZeroPlus Media編集部

ZeroPlusは、「フリーランス特化型プログラミングスクール」です。ZeroPlus Mediaでは、フリーランスとして活躍する際に役立つ有益なプログラミングやWeb制作に関する情報を発信しています。

質問について

ZeroPlus Media読者限定で質問対応をおこなっています。以下の2つの方法で質問を受け付けています。

選べる2つの質問方法

1

Google Foam(テキスト)で質問

mail

フォーム送信

メールで解答

formで質問
2

Google meet(オンラインmtg)で質問

meet

日時選択

メールを受け取る

メールからmtgに参加

meetで質問
ZeroPlus Gateについて

あなたの目的に合わせた2つのサービス

あなたの目的に合わせたZeroPlusの2つのサービス
基礎からフリーランスレベルまで本質的な学びを提供しています

完全無料!30日間で学びきれる
プログラミンスクールZeroPlus Gate

  • お金をかけずに、学習を進めたい
  • Webサイトを作れるようになりたい
  • メンターや講師に質問しながら学習したい

詳しくはこちらから

フリーランス特化型
プログラミングスクール ZeroPlus

  • プログラミング学習で悩んでいる
  • 仲間と一緒に学習したい
  • フリーランスとしての総合的な力を養いたい

詳しくはこちらから