解説
spanにwidthを書いても広がらない?inlineとinline-blockで箱を比べよう
通常のspanでdisplayを切り替え、150pxの幅と70pxの高さが反映される条件を確認。前後の文字との並び方とblockの改行も作例で整理。

文字を囲んだspanへwidthを書いたのに、横幅が変わらない。数字の単位が合っていても、その要素の表示の種類が関係していることがあるよ。
このページでは、文字を囲む普通のspanに幅と高さを指定し、inline・inline-block・blockを比べる。準備はブラウザだけ。HTMLの要素を、画面では箱として配置していることを小さく確かめよう。
inlineは、文章の流れに入る箱
<span>前</span><span class="target">対象</span><span>後</span>
.target {
display: inline;
width: 150px;
height: 70px;
}
普通のspanのような、画像などではないinlineの要素には、widthやheightで指定した幅・高さは適用されない。作例の「対象」は、150×70pxの箱にはならず、文字に応じた大きさで文章の中へ入るよ。
ここで扱うのは通常の文字を含むspan。imgなど、表示の内容や寸法に別の規則がある要素まで、全部同じとは考えないでね。
inline-blockは、幅を持たせつつ行の中へ置ける
.target {
display: inline-block;
width: 150px;
height: 70px;
}
inline-blockへ変えると、作例では150×70pxの箱になる。前後の文章と同じ行へ置ける性質を持ちつつ、箱の幅・高さを指定できるんだ。
ただし、親の行に収まらないほど横幅があれば、次の行へ送られることがある。「inline-blockなら、どんな幅でも必ず一行に収まる」という意味ではないよ。
blockなら、幅が小さくても行が分かれる
さらにblockへ切り替えると、指定した150×70pxの箱になり、前後の文字とは行が分かれる。幅を150pxにしていても、その横に次の文字が同じように続くとは限らないんだ。
| 今回のspanのdisplay | 指定した幅・高さ | 前後との通常の並び |
|---|---|---|
| inline | 適用されない | 文章の流れへ入る |
| inline-block | 適用される | 行に収まれば同じ行へ置ける |
| block | 適用される | 前後で行が分かれる |
作例はFlexやGridの項目にはしていない。それらの中では表示の扱いや配置に別の規則が加わるため、まずは普通の文章の流れで比べよう。
ページ内で見た目と実測を確認する
- 初期状態のinlineで、黄色い「対象」の文字と表示欄の幅・高さを見る。
- inline-blockを選び、150×70pxになることを確認する。
- blockを選び、寸法は同じでも「前」「後」と行が分かれることを見る。
- 「最初から試す」でinlineへ戻す。
黄色い箱の外周には、寸法を増やさないoutlineで線を付けている。枠線やpaddingによる足し算と、displayの違いを混ぜないためだよ。
期待どおりにならないときの確認
開発者ツールで、対象に実際に適用されているdisplayを見る。別のCSSで上書きされていないか、親がFlexやGridになっていないか、幅に別の制約がないかを順に確認しよう。
また、箱に入らない長い内容を用意した場合は、幅だけでなく折り返しやはみ出しの扱いも必要になる。箱が150pxになったことと、文字が必ず収まることは別だね。
編集部では2026年10月29日にMDNの適用対象を確認し、スマホ幅・PC幅で三つの表示、実測寸法、リセットを検証した。box-sizingの幅、はみ出しの扱いも一緒に読めるよ。
動かしてみよう:inline / inline-block / block
設定や入力を切り替え、実際の表示と結果を比べよう。リセットで初期状態へ戻せるよ。

みんなのコメント 0
感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。
最初のコメントをどうぞ。