コーディング犬に聞く:「display:blockって必要?」

HTMLやCSSを勉強していると、

display: block;

というコードを見かけることがあります。

でも初心者の頃は、

  • そもそもblockって何?
  • 付けなくても動くけど?
  • display:flexじゃダメなの?
  • いつ使うの?

と思うことが多いはずです。

今回は、

「display:blockって必要?」

という疑問をコーディング犬に聞いてみました。

質問人

Q. display:blockって何?

「要素をブロック要素として表示する指定だよ!」

例えば、

display:block;

を書くと、

要素が

横幅いっぱい

に広がります。

コーディング犬
質問人

Q. ブロック要素って?

「改行される要素だよ!」

例えば、

<div>テキスト</div>
<div>テキスト</div>

は、

テキスト

テキスト

と縦に並びます。


これがブロック要素です。

コーディング犬
質問人

Q. 元からblockのタグってある?

「たくさんあるよ!」

例えば、

<div>
<p>
<section>
<header>
<footer>
main
article

など。


これらは最初から、

display:block;

になっています。

コーディング犬
質問人

Q. じゃあ書く必要なくない?

「実はそういう場合も多い!」

例えば、

<div class="box">

に対して、

.box{
display:block;
}

を書いても、

見た目は変わりません。


なぜなら、

divは最初からblockだからです。

コーディング犬
質問人

Q. じゃあいつ使うの?

「inline要素をblockにしたい時!」

例えば、

<a>ボタン</a>

aタグは初期状態だと、

display:inline;

です。


つまり、

文字サイズ分しかありません。

コーディング犬
質問人

Q. 何が困るの?

例えば、

a{
background:red;
}

だと、

文字部分しかクリックできません。


ボタンっぽくしたい時は、

a{
display:block;
}

を使います。

コーディング犬
質問人

Q. よくある使い方は?

「画像リンク!」

例えば、

<a href="#">
<img src="">
</a>

これに、

a{
display:block;
}

を付けます。


すると、

余計な隙間が消えたり、

クリック範囲を調整しやすくなります。

コーディング犬
質問人

Q. spanにも使う?

「よく使う!」

spanは元々、

display:inline;

です。


例えば、

<span>NEW</span>

に、

display:block;

を付けると、

1行を占有するようになります。

コーディング犬
質問人

Q. inlineと何が違う?

ざっくり言うと、

inline

文字サイズだけ

block

横幅いっぱい

です。


例えば、

<span>犬</span>
<span>猫</span>

なら、

犬 猫

になります。


でも、

span{
display:block;
}

なら、



になります。


コーディング犬
質問人

Q. widthは効く?

「blockなら効く!」

例えば、

a{
width:300px;
}

でも、

inlineのままだと効きません。


そこで、

a{
display:block;
width:300px;
}

にします。

コーディング犬
質問人

Q. heightも同じ?

「その通り!」

inline要素には、

widthやheightが効かないことがあります。


blockにすると、

自由にサイズ調整できます。

コーディング犬
質問人

Q. display:inline-blockって何?

「blockとinlineの中間!」

例えば、

display:inline-block;

です。


特徴は、

  • 横並び
  • width指定可能
  • height指定可能

です。


ボタンなどでよく使います。

コーディング犬
質問人

Q. display:flexがあるなら不要?

「別物だよ!」

例えば、

display:flex;

は、

レイアウト用。


display:block;

は、

要素の表示方法です。


役割が違います。

コーディング犬
質問人

Q. 実務でよく見る?

「かなり見る!」

特に、

a{
display:block;
}

は定番です。


画像リンクやカードリンクでは、

ほぼ毎回登場します。

コーディング犬
質問人

Q. 初心者は覚えるべき?

「絶対覚えよう!」

CSSの基本中の基本です。


特に、

  • block
  • inline
  • inline-block
  • flex

の違いは理解しておくと、

レイアウトで困りにくくなります。

コーディング犬

まとめ

display:blockは、

要素をブロック要素として表示するCSSです。

ただし、

divやpなどは最初からblockなので、

改めて書く必要がない場合もあります。

よく使うのは、

  • aタグ
  • spanタグ
  • ボタン風デザイン
  • カードリンク

などです。

まずは、

display:block;

を書くと、

「横幅いっぱいになる」

というイメージを持つと理解しやすいです。

CSSの基礎を理解すると、

レイアウトの仕組みもぐっと分かるようになります。

コーディング犬との約束です。