コーディング犬に聞く:「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の基礎を理解すると、
レイアウトの仕組みもぐっと分かるようになります。
コーディング犬との約束です。

