CSSのdisplayとは?横並びの仕組みを初心者向けに解説【100日チャレンジDAY012】

100日チャレンジ

3児の子育てをしながら、未経験からWeb制作を勉強しているgrillon designです。

今回の100日チャレンジでは、CSSの「display」について勉強しました。

Web制作を勉強していると、

「この要素、なんで縦に並ぶんだろう?」

「横並びにしたいのに、うまくいかない……」

ということがあります。

私も最初は、横並びにしたいときは「flexを使えばいいのかな?」くらいに考えていました。

でも今回勉強してみて、

横並びにする方法は1つではない

ということが分かりました。

今回は、3児ママの私が実際にコードを書きながら、CSSのdisplayについて初心者なりにまとめてみます。


今回の100日チャレンジで勉強したこと

今回勉強したのは、CSSの「display」です。

  • block
  • inline
  • inline-block
  • flex

それぞれの違いを知り、実際にHTMLとCSSを書いて表示の変化を確認しました。

前回は、CSSで画像のサイズ変更や画像を丸くする方法について勉強しました。

今回は、画像ではなく「要素の並び方」に注目して勉強していきます。


CSSのdisplayとは?

まず「displayって何?」というところから勉強しました。

displayは、要素をどのように表示・配置するかを決めるCSSプロパティです。

HTMLでは、見出しや文章、リンク、リストなど、いろいろな要素を使います。

それらの要素が、

  • 縦に並ぶ
  • 横に並ぶ
  • 幅や高さを指定できる
  • ほかの要素とどのように並ぶ

といった表示のされ方に関係するのがdisplayです。

最初は少し難しく感じましたが、

「displayは、HTMLの要素の並び方に関係しているんだ」

と考えると、少し分かりやすくなりました。


blockとは?基本的に縦に並ぶ表示

まず勉強したのが「block」です。

block要素は、基本的に縦に並んで表示されるのが特徴です。

例えば、

<h2>プロフィール</h2>
<p>Web制作を勉強しています。</p>

このような見出しや段落などは、基本的に縦方向に並んでいきます。

イメージとしては、

プロフィール

Web制作を勉強しています。

という感じです。

普段ブログを書いているときは、見出しや文章が縦に並ぶことを当たり前のように感じています。

でも、それもHTMLの要素が持っている表示の特徴なんだと知りました。


inlineとは?文章のように横へ並ぶ

次に「inline」です。

inlineは、文章のように横へ並んで表示されるのが特徴です。

例えば、HTMLのaタグなどがあります。

今回作ったページでも、ナビゲーション部分にリンクを使っています。

<nav>
  <a href="#profile">プロフィール</a>
  <a href="#skill">できること</a>
  <a href="#blog">ブログ</a>
</nav>

このようなリンクは、基本的に横方向に並びます。

プロフィール できること ブログ

「横並びにするためにCSSを書いたのかな?」

と思っていたのですが、inline要素はもともと横に並ぶ性質があると知りました。


inline-blockとは?横並び+サイズ調整ができる

続いて「inline-block」です。

inline-blockは、

横並びにしながら、widthやheightなども指定できる

という特徴があります。

inlineとblockの両方の特徴を持っている、と考えると分かりやすいです。

ざっくり整理すると、

  • block → 基本的に縦に並ぶ
  • inline → 横に並ぶ
  • inline-block → 横に並びながらサイズも調整しやすい

という違いがあります。

最初から全部を完璧に覚えようとすると難しいので、私はまずこのくらいのイメージで覚えることにしました。


横並びにする方法は1つじゃなかった!

今回勉強していて、私が「なるほど!」と思ったのがここです。

横並びにする方法は1つではありません。

例えば、

  • inline
  • inline-block
  • flex
  • grid

など、目的に合わせていろいろな方法があります。

最初の頃の私は、

「横並びにしたいならflex!」

くらいに思っていました。

でも、実際には要素の種類や作りたいレイアウトによって使い分けます。

グリヨン
グリヨン

えっ、横並びにする方法って1つじゃないの?
最初はflexだけ覚えればいいと思ってた!

Web制作を勉強していると、「これを使えばOK」というものだけではなく、いろいろな方法があることに気づきます。

だからこそ、少しずつ違いを覚えていきたいと思いました。


今回はdisplay:flexを実際に使ってみた

今回の練習では、「できること」のリストを横並びにしてみました。

もともとのHTMLは、

<ul class="skill-list">
  <li>ホームページ作成</li>
  <li>WordPress</li>
  <li>HTML・CSS</li>
</ul>

です。

CSSを何も設定していない状態では、リストは縦に並びます。

📷 写真①:display:flexを入れる前


display:flexを設定する前は、リストが縦に並んでいました。

「これを横並びにしたい!」

ということで、CSSを追加してみました。


📷 写真②:display:flexを入れた後


display:flexを追加すると、リストが横並びになりました。

実際に表示を見てみると、

「本当に横並びになった!」

と変化が分かりやすかったです。

グリヨン
グリヨン

本当に横並びになった!
「display: flex」ってこういうことなんだ!

こうやって自分でコードを書いて、表示が変わるところを見ると、少しずつ理解しやすくなります。


実際に書いたCSSを見てみる

今回、実際に書いたCSSはこちらです。

.skill-list {
  display: flex;
  gap: 20px;
  padding: 0;
  list-style: none;
}

.skill-list li {
  flex: 1;
  padding: 20px;
  border: 1px solid #ccc;
  text-align: center;
}

この中でも今回特に覚えたかったのが、

display: flex;

です。

display: flexを指定することで、親要素の中にあるリスト項目を横方向に並べることができます。


📷 写真③:実際に書いたCSS


実際に書いたdisplay:flexのCSS。gapなども追加して整えました。

コードだけを見るよりも、実際の画面と一緒に見ると、

「このCSSを書いたから、この表示になったんだ」

と理解しやすくなりました。


gapを使って項目の間にすき間を作る

今回、横並びにするだけではなく、項目と項目の間にもすき間を作りました。

そのために使ったのが、

gap: 20px;

です。

これを入れることで、リスト同士の間に20pxのすき間ができます。

ホームページ作成  WordPress  HTML・CSS

というように、詰まりすぎず見やすくなりました。


liをカードのように整えてみた

さらに、それぞれのliにもCSSを追加しました。

.skill-list li {
  flex: 1;
  padding: 20px;
  border: 1px solid #ccc;
  text-align: center;
}

ここでは、

  • flex: 1 → 横幅を均等にする
  • padding → 内側に余白を作る
  • border → 枠線をつける
  • text-align → 文字を中央にする

という設定をしています。

最初は「横並びにする」という目的だけでしたが、少しCSSを追加するだけで、見た目も整えることができました。


📷 写真④:完成した「できること」部分


display:flexとgapなどを使って、3つの項目を横並びにしました。

BeforeとAfterを比べてみると、変化が分かりやすいです。

Before

縦に並んでいた

↓

After

3つの項目が横並びになった

こうやって実際の変化を確認できると、CSSの役割が少しずつ分かってきます。


「横並びにならない」ときに確認したいこと

Web制作をしていると、

「display:flexを書いたのに、思ったようにならない!」

ということもあります。

そんなときは、まず次のようなところを確認してみようと思いました。

① display:flexをどの要素に指定しているか

Flexboxでは、基本的に横並びにしたい要素を囲んでいる親要素にdisplay: flexを指定します。

今回なら、

<ul class="skill-list">
  <li>ホームページ作成</li>
  <li>WordPress</li>
  <li>HTML・CSS</li>
</ul>

なので、

.skill-list {
  display: flex;
}

としました。

親要素にdisplay:flexを指定する

というのは、今回覚えておきたいポイントのひとつです。

② CSSが正しく読み込まれているか

CSSを書いたのに変化しない場合は、

  • CSSの書き方が間違っていないか
  • クラス名がHTMLと合っているか
  • CSSファイルが正しく読み込まれているか

なども確認します。

私もまだ勉強中なので、「なんで変わらないんだろう?」と思ったら、一つずつ確認するようにしています。


HTMLとCSSを一緒に考えるとdisplayも分かりやすい

今回displayについて勉強してみて、HTMLとCSSを別々に考えるより、

HTMLで「何を作るか」→ CSSで「どう見せるか」

と考えると少し分かりやすいと感じました。

例えば今回なら、

HTML:

<ul class="skill-list">
  <li>ホームページ作成</li>
  <li>WordPress</li>
  <li>HTML・CSS</li>
</ul>

CSS:

.skill-list {
  display: flex;
}

という組み合わせです。

HTMLだけでは縦に並んでいたものに、CSSでdisplay: flexを指定することで横並びにしました。

HTMLとCSSの役割については、以前の記事でも初心者向けにまとめています。


CSSのdisplayについて今回分かったこと

今回勉強した内容を、簡単にまとめてみました。

display特徴
block基本的に縦に並ぶ
inline横に並ぶ
inline-block横並び+サイズ調整がしやすい
flex子要素を柔軟に横並びなどにできる

最初から全部を完璧に覚えるのではなく、

「こういう違いがあるんだ」

と知っておくことから始めました。


3児ママがdisplayを勉強してみた感想

今回の学習で一番印象に残ったのは、

「横並びにしたい=flex」だけではなく、目的に合わせて使い分ける

ということです。

Web制作を始めたばかりの頃は、CSSの名前を覚えるだけでも精一杯でした。

でも、

「実際にコードを書く」
↓
「表示を見る」
↓
「どうしてこうなったのか考える」

という流れで勉強すると、少しずつ理解できるようになってきました。

3人の子どもがいると、まとまった勉強時間を毎日確保するのはなかなか難しいです。

だから私は、全部を一気に覚えようとせず、

今日はdisplayについて1つ分かった!

くらいの気持ちで進めています。

「1日で全部理解しなくてもいい」と思えると、少し気持ちも楽になります。


まとめ|displayは「要素の並び方」を考えると分かりやすい

今回はCSSのdisplayについて勉強しました。

今回覚えたことは、

  • blockは基本的に縦に並ぶ
  • inlineは横に並ぶ
  • inline-blockは横並び+サイズ調整がしやすい
  • flexを使うと要素を柔軟に横並びにできる
  • 横並びにする方法は1つではない
  • display:flexは親要素に指定する

ということです。

まだまだ勉強中ですが、実際に自分でコードを書いて表示を確認することで、少しずつCSSの仕組みが分かってきました。

これからも3児の子育てと両立しながら、無理なく100日チャレンジを続けていきます。


100日チャレンジの続きはこちら

今回のDAY012では、CSSのdisplayについて勉強しました。

次回も、実際にコードを書きながらWeb制作の勉強を続けていきます。

コメント

タイトルとURLをコピーしました