CSSのflexで内容に合わせて高さを変える方法【初心者向け】

初心者向けにCSSのflexで内容に合わせて高さを変える方法について解説しています。flexboxはCSS3から追加されたレイアウトモジュールで段組やレイアウトに特化しています。今回は要素内の内容量に応じて高さを変更するようにしてみます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

CSSのflexで内容に合わせて高さを変える方法について解説します。flexboxではデフォルトで高さが揃った状態で表示されますが、内容に応じて表示するようにしてみます。

CSSについてそもそもよく分からないという方は、CSSの書き方について解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのWebデザインオンラインブートキャンプのカリキュラムをもとに執筆しています。

 

田島悠介

今回は、CSSに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

CSSのflexで内容に合わせて高さを変える方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

flexで内容に合わせて高さを変える方法

flexboxのデフォルトの特性として、列ごとに高さを揃えてくれるというものがあります。

ちょっと大げさに表現すると、こんな感じです。

これを、揃えないようにするプロパティがあります。

それは、align-items: baseline;

適用する箇所は、display: flex;を指定している親要素になります。

 

実際に書いてみよう

HTML

<div class="container">
  <div class="box"><p>コンテンツ</p></div>
  <div class="box"><p>コンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツコンテンツ</p></div>
  <div class="box"><p>コンテンツ</p></div>
  <div class="box"><p>コンテンツ</p></div>
  <div class="box"><p>コンテンツ</p></div>
</div>

 

CSS

.container{
  display: flex;
  background: #ccc;
  flex-wrap: wrap;
  align-items: baseline;
}

.box{
  width: 200px;
  margin: 10px;
  background-color: #66b6d5;
}

 

複数行になった時は、こんな感じになるので、可変グリットで詰めて表示!みたいなのはできないようですね。

CSS Gridというものもありますので、調べてみてくださいね。

 

この記事を監修してくれた方

和田 祥子(わださちこ)
フリーランスのWebデザイナー7年目です。Ruby勉強中。

テニスと音楽とビールが好きです。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

オンラインのプログラミングスクールTechAcademyでは初心者でも最短4週間でオリジナルWebサイトを公開できるWebデザインオンラインブートキャンプを開催しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。