ZeroPlus Gateについて

\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > Web制作 > HTML/CSS > 【CSS】flex-basisの使い方を解説!widthやheightとの違いは?

【CSS】flex-basisの使い方を解説!widthやheightとの違いは?

HTML/CSS

2022/05/16

2023/05/08

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

flex-basis は、flexアイテムの大きさを指定できるプロパティです。上手に使いこなせばCSSの記述を減らしつつコーディングの効率化を図れます。

この記事では flex-basis の使い方を解説します。flex-basis は特有の性質を持つため、この記事を参考に flex-basis の理解を深めましょう。

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

flex-basis は、flexboxプロパティの一つです。flexboxの学習では、一つのプロパティだけでなく全体的に理解することが大切です。しかし、flexboxプロパティは種類が多く、使い分けが難しいという難点もあります。

こちらの記事で、flexboxという概念や各プロパティの使い方について詳しく解説しています。学習に詰まったときやわからないプロパティがあるときなど、学習にお役立てください。

ZeroPlus Gateについて

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

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

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

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

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

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

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

今すぐZeroPlus Gateの詳細を見る

flex-basisとは

flex-basisは、flexアイテムの大きさを指定するプロパティです。

flex-basisに使用できる値

flex-basis に使用できる値は以下の通りです。

  • auto(初期値) - flexアイテムの大きさを自動的に決定する
  • 数値 + 単位 - flexアイテムの大きさを、数値とpxやrem,emなどの単位で指定する
  • % - flexアイテムの大きさを%比率で指定する

 

flex-basisの性質

flex-basis には、以下のような性質があります。

  • width と併用したとき、flex-basis の値が優先される
  • flexアイテムが並ぶ方向によって横幅か高さの値となる
  • flex-grow / flex-shrink を使用するときの基準の値となる

 

width と併用時の flex-basis

flex-basis と width を併用したときは flex-basis の値が優先されることに注意しましょう。基本的に flex-basis と width に違いはないため、どちらかのプロパティを使用しましょう。

 

flex-direction と併用時の flex-basis

flex-basis は、flex-direction の値によって値の意味が変化する性質を持っています。

flex-basis の指定の変化
  • flex-direction:row/row-reverse; のとき - 横幅(width)
  • column/column-reverse のとき - 高さ(height)

 

flexbox には、「主軸」「クロス軸」という概念があります。主軸というのは、簡単に言えば flex-direction で指定している向きのことです。例えば、flexアイテムを横並びにしている場合は横方向が「主軸」、縦方向が「クロス軸」となります。

flexboxのレイアウト作成ではこの主軸とクロス軸の理解が重要になるので、ぜひ学習してみてください。

flex-direction の使い方、主軸とクロス軸については以下の記事が参考になります。併せてお読みください。

 

flex-grow/flex-shrink と併用時の flex-basis

flex-basis で指定した値は flex-grow や flex-shrink を使用する場合の基準値となります。

flex-grow、flex-shrink の使い方については以下の記事が参考になりますので併せてお読みください。

ZeroPlusgate50教材の動画

 

flex-basisの使い方

flex-basis はflexアイテムに有効なプロパティです。そのため親要素に display: flex; を、子要素に flex-basis をそれぞれ指定します。

以下がHTMLとCSSの基本形です。

 <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-item{
 flex-basis: 値;
}

 

flex-basisに「auto(初期値)」を指定する

flex-basis: auto; のとき、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;
  text-align: center;
}

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

.item01{
  background-color: red;
  flex-basis:auto;
}

.item02{
  background-color: blue;
  flex-basis: auto;
}

.item03{
  background-color: green;
  flex-basis: auto;
}

flex-basis: auto;の出力結果

flexアイテムの大きさが自動的に決まり、均等な横幅になりました。

今回の例ではflexアイテム全体のwidthを100%としたためこのような表示となっています。flexアイテム全体のwidthを指定せずにflex-basisのみを指定した場合は、各要素の最小の大きさで表示されることを理解しておきましょう。

flex-basisに「数値 + 単位」を指定する

flex-basis に数値と単位を指定することで、flexアイテムを任意の大きさに変更できます。

ここでは例としてpxを使用します。

以下が記述例と出力結果です。

<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;
  text-align: center;
}

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

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

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

flex-basisのpx指定

flex-basisに「%」を指定する

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;
  text-align: center;
}

.item01{
  background-color: red;
  flex-basis: 45%;
}

.item02{
  background-color: blue;
  flex-basis: 30%;
}

.item03{
  background-color: green;
  flex-basis: 25%;
}

flex-basisの%指定

ZeroPlusgate50教材の動画

flex-basisとwidth・heightの違い

flex-basis では、要素の大きさを指定できます。ここで、同様に要素の大きさを指定する「width」や「height」と何が違うんだろう?と疑問を持つ方もいるのではないでしょうか。

一番の違いは、flexアイテムを対象としているかどうかです。width や heigth はすべての要素に適用されることに対して、flex-basis はflexアイテムのみに有効です。

flex-basis を使うときには、親要素に display: flex; の指定を忘れないようにしましょう。

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

flex-basis に関連するプロパティは、以下のものがあります。

  • flex-grow
  • flex-shrink
  • flex

flex-grow

flex-grow は、flexアイテムの伸長率を指定するプロパティです。flexコンテナに余白がある場合に、指定したflexアイテムが親要素の余白を無くすために必要な伸び率を指定します。

flex-grow はあくまでもflexアイテムの伸び率を指定するプロパティであり、大きさそのものの指定はできません。flex-basis と併用することで要素の基準の大きさを指定できます。

flex-grow は以下の記事で詳しく解説しているので、ぜひ参考にしてください。

 

flex-shrink

flex-shrink は、flexアイテムの縮小率を指定するプロパティです。flex-grow とは対照的に、flexコンテナ内の余白がない場合(flexアイテムがflexコンテナの幅を超えている場合)に有効です。

こちらも flex-grow と同様、flexアイテム自体の大きさの指定はできません。flex-basis と併用することで、基準となるflexアイテムの大きさを決定し、そこから縮小率を決定します。

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

 

flex

flex は、flex-grow、flex-shirnk、flex-basisをショートハンドで指定できるプロパティです。

指定する値の数や単位の有無によって、値の意味が変わります。

使い分けは少し難しいですが、使いこなせば一つのプロパティだけでflexアイテムの大きさや伸縮率を自在に指定できるようになります。コーディングの効率化にも有効なので、ぜひ学習してみてください。

flex はこちらの記事で詳しく解説しています。

まとめ

flex-basis はflexアイテムの大きさを指定するプロパティです。基本的に width や height と同じですが、flexアイテムの並び方によってどちらの値をとるか切り替わる性質を持ちます。

flex-basis の使い方を理解しておくと、flexboxレイアウトの作成が効率よく行えます。flexboxはWeb制作でよく使われる実装ですので、使いこなしていきましょう。

 

flex-basisプロパティまとめ

  • flexアイテムの大きさを指定するプロパティ
  • display: flex; と併用する
  • width や heigth よりも優先される
  • flex-direction の値によって width の値か height の値かが変わる
  • flex-grow や flex-shrink を使用するときの基準値となる
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

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

詳しくはこちらから