ZeroPlus Gateについて

\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > Web制作 > HTML/CSS > 【CSS】flexアイテムの大きさと伸縮を一括指定する方法を解説

【CSS】flexアイテムの大きさと伸縮を一括指定する方法を解説

HTML/CSS

2022/05/24

2023/05/08

flexbox flexプロパティ解説記事サムネイル

CSSの記述で、「 flex: 1; 」のような指定を目にしたことはありませんか?この記述は、flexアイテムの伸縮に関するプロパティをショートハンドで指定したものです。

flexアイテムの大きさや伸縮は、flex-grow、flex-shrink、flex-basisを使うことで指定可能です。しかしこれらのプロパティを別々に記述するのは手間がかかります。

そんなとき、flexプロパティを使用すれば、CSSの記述を減らして簡単にコーディングを行えます。

この記事ではflexプロパティの使い方を解説します。

この記事で身につく内容
  • flexとは
  • flexの使い方

flexを使いこなすためには、flexboxを理解しておくことが大切です。flexboxはCSSのレイアウトモードであり、効率的なレイアウト作成に役立ちます。

flexboxプロパティの種類は多く、すべてを学ぶのは一筋縄ではいきませんが、少しずつ学習していきましょう。こちらの記事でflexboxについて詳しく解説しています。

ZeroPlus Gateについて

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

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

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

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

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

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

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

今すぐZeroPlus Gateの詳細を見る

flexとは

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

指定する数値の数や単位の有無によって、どのプロパティの値をとるかが変わります。

値が1つのとき

単位なし

flex-grow

単位あり

flex-basis

値が2つのとき

単位なし

flex-grow、

flex-shrink

単位なし(2つ目の値)

flex-grow、

flex-basis

値が3つのとき

3つ目の値に単位が必要

flex-grow、flex-shrink、flex-basis

それぞれの使い分けは、次項で詳しく解説します。

flexの使い方

flexは、flexアイテムに有効なプロパティです。そのため、親要素には display: flex; の指定が必要です。

以下が flex の基本形です。

 <div class="flexbox">
   <div class="flex-item item01">①</div>
   <div class="flex-item item02">②</div>
   <div class="flex-item item03">③</div>
 </div>
.flexbox {
  display: flex;
}

.flex-item01 {
  flex: 数値;
}

 

flexの数値が1つのとき

flex に指定する値が1つだけのときは、単位の有無によって以下の値をとります。

  • 単位なし - flex-grow の値
  • 単位あり - flex-basis の値

記述例と出力結果を確認してみましょう。

 

単位なしの場合

flex で指定した数値に単位をつけない場合、flex の値は flex-grow の値をとります。

<div class="flexbox">
  <div class="flex-item item01">①</div>
  <div class="flex-item item02">②</div>
  <div class="flex-item item03">③</div>
</div>
.flexbox {
  display: flex;
  border: 1px solid #000;
  text-align: center;
}

.flex-item {
  color: #fff;
}

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

.item02 {
  background-color: blue;
  flex: 2;
}

.item03 {
  background-color: green;
  flex: 3;
}

See the Pen flex1 by ZeroPlus (@zeroplus-programming) on CodePen.

flex の値は flex-grow の値をとり、flexアイテムがそれぞれ 1 : 2 :  3の比率で表示されました。

flex-grow の使い方についてはこちらの記事で詳しく解説しているので、参考にしてください。

 

単位ありの場合

flex で指定した数値に単位をつけた場合、flex の値は flex-basis の値をとります。

<div class="flexbox">
<div class="flex-item item01">①</div>
<div class="flex-item item02">②</div>
<div class="flex-item item03">③</div>
</div>
.flexbox {
  display: flex;
  border: 1px solid #000;
  text-align: center;
}

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

.item01 {
  background-color: red;
  flex: 300px;
}

.item02 {
  background-color: blue;
  flex: 500px;
}

.item03 {
  background-color: green;
  flex: 600px;
}

See the Pen flex2 by ZeroPlus (@zeroplus-programming) on CodePen.

flex の値は flex-basis の値をとり、指定した大きさで表示されました。今回の例ではpxで指定しましたが、%やem、remなども指定できます。

flex-basis の使い方については、こちらの記事で解説しています。ぜひ参考にしてください。

flexの数値が2つのとき

flex に指定する値が2つのときは、単位の有無によって以下の値をとります。

  • 単位なし - flex-grow、flex-shrink の値
  • 単位あり - flex-shrink、flex-basis の値

なお、単位をつける場合は2つ目の値にのみ有効です。

記述例と出力結果を確認してみましょう。

 

単位なしの場合

どちらの値にも単位を指定しない場合、flex の値は flex-grow、flex-shrink の値をとります。

<div class="flexbox">
  <div class="flex-item item01">①</div>
  <div class="flex-item item02">②</div>
  <div class="flex-item item03">③</div>
</div>
.flexbox {
  display: flex;
  border: 1px solid #000;
  text-align: center;
}

.flex-item{
  color: #fff;
}

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

.item02{
  background-color: blue;
  flex: 2 2;
}

.item03{
  background-color: green;
  flex: 3 3;
}

See the Pen flex3 by ZeroPlus (@zeroplus-programming) on CodePen.

今回の例ではflexコンテナに余白があるため、flex は flex-grow の値をとっています。

flex-shrink の値を反映させたい場合は、以下のような条件を満たす必要があります。

  • flexコンテナの幅を超えるflexアイテムの幅を指定
  • flex-basis を指定

flex-shrink はflexコンテナとflexアイテムの幅によって出力結果が変化します。flex-shirnk はこちらの記事で詳しく解説しているので、併せてお読みください。

 

単位ありの場合

2つ目の値に単位を指定した場合、flexの値は flex-grow、flex-basis の値をとります。

<div class="flexbox">
  <div class="flex-item item01">①</div>
  <div class="flex-item item02">②</div>
  <div class="flex-item item03">③</div>
</div>
.flexbox {
  display: flex;
  border: 1px solid #000;
  text-align: center;
  width: 100%;
}

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

.item01{
  background-color: red;
  flex: 1 10%;
}

.item02{
  background-color: blue;
  flex: 2 10%;
}

.item03{
  background-color: green;
  flex: 3 10%;
}

See the Pen flex4 by ZeroPlus (@zeroplus-programming) on CodePen.

flex-grow と flex-basis を同時に指定している記述のため、flexアイテムは15%を基準に 1 : 2 : 3 の比率で表示されています。

 

flexの数値が3つのとき

flexの値が3つのとき、flex は flex-grow、flex-shrink、flex-basis のショートハンド指定となります。3つ目の数値には単位が必要です。

記述例と出力結果を確認してみましょう。

<div class="flexbox">
  <div class="flex-item item01">①</div>
  <div class="flex-item item02">②</div>
  <div class="flex-item item03">③</div>
</div>
.flexbox {
  display: flex;
  border: 1px solid #000;
  text-align: center;
  width: 100%;
}

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

.item01 {
  background-color: red;
  flex: 1 1 15%;
}

.item02 {
  background-color: blue;
  flex: 2 2 15%;
}

.item03 {
  background-color: green;
  flex: 3 3 15%;
}

See the Pen flex5 by ZeroPlus (@zeroplus-programming) on CodePen.

 

数値以外の値

flex には数値以外の値も指定できます。

以下は flex に使用可能な値です。

flexの値
initialflex: 0 1 auto;を示す
autoflex: 1 1 auto;を示す
noneflex: 0 0 auto;を示す

ZeroPlusgate50教材の動画

まとめ

flex はflexアイテムの大きさと伸縮を一括で指定できるプロパティです。

flexプロパティの性質は独特であるため、使いこなすには十分な理解が必要です。しかしきちんと扱えるようになれば、CSSの記述を減らして効率的なコーディングができるようになります!しっかり学習しておきましょう。

 

flexまとめ

  • flexアイテムの大きさと伸縮を同時に指定するプロパティ
  • flex-grow、flex-shrink、flex-basisをショートハンドで指定可能
  • display: 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

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

詳しくはこちらから