目次
- 【完全保存版】CSSで横並びできない原因と解決方法|Flexbox・inline-block・floatを初心者向けに徹底解説
- CSSで横並びできない理由とは?
- よくある原因① displayを指定していない
- なぜ横並びできない?
- 解決方法
- よくある原因② Flexboxを使っているのに横並びにならない
- なぜ横並びできない?
- 正しい書き方
- よくある原因③ widthが大きすぎる
- なぜ横並びできない?
- 解決方法
- CSSで横並びにする代表的な方法
- 方法① Flexbox(最もおすすめ)
- Flexboxの特徴
- 方法② inline-block(やや古い)
- 注意点
- 方法③ float(非推奨)
- 注意点
- 横並びできないときのチェックリスト
- 横並び+中央寄せをしたい場合
- スマホで横並びが崩れる原因
- 初心者におすすめの最短解決策
- まとめ
【完全保存版】CSSで横並びできない原因と解決方法|Flexbox・inline-block・floatを初心者向けに徹底解説
CSSでレイアウトを組んでいると、
「横に並べたいのに、なぜか縦に並んでしまう」
という悩みに必ず一度は直面します。
- 横並びにしたい要素が縦に積み重なる
- ネットのコードをそのまま使っても動かない
- Flexboxを使っているのに横並びにならない
この記事では、「css 横並び できない」で検索した初心者の方に向けて、
横並びできない原因とその解決方法を、仕組みから順に丁寧に解説します。
CSSで横並びできない理由とは?
CSSで横並びできない最大の理由は、
HTML要素の初期状態(displayの違い)を理解していないことです。
HTML要素には、主に次の2種類があります。
- ブロック要素(div / p / section など)
- インライン要素(span / a / img など)
ブロック要素は、
初期状態では必ず縦に並ぶという性質があります。
よくある原因① displayを指定していない
<div class="box"></div>
<div class="box"></div>
.box {
width: 200px;
height: 100px;
}
なぜ横並びできない?
div はブロック要素なので、
何も指定しなければ縦に並びます。
解決方法
親要素にFlexboxを指定します。
.container {
display: flex;
}
よくある原因② Flexboxを使っているのに横並びにならない
.item {
display: flex;
}
なぜ横並びできない?
Flexboxは、
親要素に指定しないと意味がありません。
正しい書き方
.container {
display: flex;
}
<div class="container">
<div class="item"></div>
<div class="item"></div>
</div>
よくある原因③ widthが大きすぎる
.item {
width: 100%;
}
なぜ横並びできない?
横幅が100%だと、
1つの要素で横幅を使い切ってしまいます。
解決方法
横幅を調整するか、flex指定を使います。
.item {
flex: 1;
}
CSSで横並びにする代表的な方法
CSSで横並びにする方法はいくつかあります。
初心者が知っておくべき代表的な方法を紹介します。
方法① Flexbox(最もおすすめ)
.container {
display: flex;
gap: 20px;
}
Flexboxの特徴
- 横並びが簡単
- レスポンシブ対応しやすい
- 現在の主流
初心者の方は、
まずFlexboxを覚えればOKです。
方法② inline-block(やや古い)
.item {
display: inline-block;
width: 200px;
}
注意点
- HTMLの改行が影響する
- 余白調整が難しい
現在はFlexboxの方が使われます。
方法③ float(非推奨)
.item {
float: left;
}
注意点
- レイアウト崩れの原因になりやすい
- 現在はあまり使われない
既存サイトの修正以外では、
基本的に使いません。
横並びできないときのチェックリスト
横並びにならないときは、次を確認してください。
- 親要素に display: flex; はあるか
- width が大きすぎないか
- ブロック要素のままになっていないか
- flex-direction が column になっていないか
.container {
flex-direction: row;
}
row が横並び、column が縦並びです。
横並び+中央寄せをしたい場合
.container {
display: flex;
justify-content: center;
gap: 20px;
}
横並びと中央寄せは、
Flexboxで同時に簡単に実現できます。
スマホで横並びが崩れる原因
@media screen and (max-width: 768px) {
.container {
flex-direction: column;
}
}
スマホでは、
あえて縦並びに切り替えるケースも多いです。
初心者におすすめの最短解決策
横並びできないときは、
まずこれを疑ってください。
.parent {
display: flex;
}
これだけで、
ほとんどの「横並びできない問題」は解決します。
まとめ
CSSで横並びできない原因は、
CSSが難しいのではなく、仕組みを知らないだけです。
- ブロック要素は初期状態で縦並び
- 横並びは親要素で制御する
- Flexboxが最も簡単で安全
- widthとflex-directionに注意する
「css 横並び できない」で検索した方は、
まず display: flex; を親要素に指定する ことから試してみてください。
横並びの仕組みが理解できると、CSSレイアウトが一気に楽になります。