カテゴリ: CSS 更新日: 2026/03/02

CSSのclearfixとは?floatで崩れるレイアウトを防ぐ方法を初心者向けに解説

clearfixとは?floatを使ったときの崩れを防ぐ方法
clearfixとは?floatを使ったときの崩れを防ぐ方法

先生と生徒の会話形式で理解しよう

生徒

「先生、floatでボックスを左や右に並べると、親の高さが消えてレイアウトが崩れることがあります。どうしたらいいですか?」

先生

「それにはclearfix(クリアフロート)という方法を使います。clearfixを使うと、floatで崩れた親要素の高さを正しく表示できます。」

生徒

「clearfixって難しそうです。具体的にはどう書けばいいんですか?」

先生

「順を追って説明します。floatとclearの仕組みを理解してからclearfixを使うとわかりやすいです。」

1. floatでレイアウトが崩れる理由(高さの消失)

1. floatでレイアウトが崩れる理由(高さの消失)
1. floatでレイアウトが崩れる理由(高さの消失)

CSSのfloatプロパティは、もともと「画像にテキストを回り込ませる」ために作られた機能です。しかし、ボックスを横に並べるレイアウト手法として長年使われてきました。

ここで初心者が最もつまづきやすいポイントが、「親要素の高さが消えてしまう」という現象です。float(浮く)という言葉の通り、指定された要素は通常の配置ルールから浮き上がった状態になります。すると、親要素は「中に要素が入っていない」と勘違いしてしまい、高さが0になったり、背景色が消えたりしてレイアウトがガタガタに崩れてしまうのです。


<style>
    .parent {
        background-color: #f8d7da; /* 薄い赤色の背景 */
        border: 2px solid #dc3545;
        padding: 10px;
    }
    .child {
        float: left;
        width: 150px;
        height: 100px;
        background-color: #007bff;
        color: white;
        margin: 5px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .text {
        margin-top: 20px;
        color: #333;
    }
</style>

<div class="parent">
    <div class="child">floatしている子要素1</div>
    <div class="child">floatしている子要素2</div>
</div>

<p class="text">
    ↑本来なら赤い枠(親要素)が子要素を包むはずですが、floatの影響で高さが消え、枠が潰れてしまっています。
</p>
ブラウザ表示

このように、子要素が浮いてしまうことで親要素が中身を認識できなくなる状態を理解することが、clearfixを使いこなすための第一歩です。

2. clearで崩れを回避する方法

2. clearで崩れを回避する方法
2. clearで崩れを回避する方法

floatの影響を受けないようにするには、clearプロパティを使います。clearにはleft、right、bothがあります。bothを使うと、左にも右にもfloatがある場合に影響を受けず、次のブロック要素が正しい位置に表示されます。


<style>
    .box-left {
        float: left;
        width: 100px;
        height: 80px;
        background-color: lightblue;
        margin-right: 10px;
    }
    .box-right {
        float: left;
        width: 100px;
        height: 80px;
        background-color: lightcoral;
    }
    .clear-both {
        clear: both;
    }
</style>

<div class="box-left">左ボックス</div>
<div class="box-right">右ボックス</div>
<div class="clear-both"></div>
<p>clear-bothを入れることで、この段落はボックスの下から表示されます。</p>
ブラウザ表示

3. clearfixとは何か?float崩れをまとめて防ぐ方法

3. clearfixとは何か?float崩れをまとめて防ぐ方法
3. clearfixとは何か?float崩れをまとめて防ぐ方法

clearfixは、親要素に対してfloatの影響を自動でリセットし、親要素の高さを正しく表示させるテクニックです。floatを使った古いレイアウトで必須だった方法で、CSSだけで簡単に対応できます。


<style>
    .clearfix::after {
        content: "";
        display: block;
        clear: both;
    }
    .float-box {
        float: left;
        width: 120px;
        height: 80px;
        margin-right: 10px;
        background-color: skyblue;
    }
</style>

<div class="clearfix">
    <div class="float-box">ボックス1</div>
    <div class="float-box">ボックス2</div>
</div>
<p>clearfixを親要素に追加すると、floatされたボックスの下に正しい高さが確保されます。</p>
ブラウザ表示

4. clearfixを使うメリットと古いレイアウトの理解

4. clearfixを使うメリットと古いレイアウトの理解
4. clearfixを使うメリットと古いレイアウトの理解

clearfixを使うことで、floatを利用した古いレイアウトでもボックスの高さ消失や重なりを防げます。初心者がfloatやclearの動きを理解するのに役立ちます。現在はフレックスボックスやグリッドレイアウトが主流ですが、clearfixの仕組みを知っておくと、古いウェブサイトの修正やメンテナンスに便利です。

clearfixは「floatで崩れやすいレイアウトを安全に保つCSSテクニック」と覚えておくと良いでしょう。

まとめ

まとめ
まとめ

ここまで、CSSのfloatによるレイアウト崩れと、その対処法としてのclear、そしてclearfixについて詳しく見てきました。floatは、画像の回り込みや横並びレイアウトを簡単に実現できる便利なプロパティですが、親要素の高さが消えてしまうという特徴があります。この仕組みを理解していないと、背景色が表示されない、次の要素が重なってしまうなど、見た目に大きな影響が出てしまいます。

まず重要なのは、floatされた要素は通常の文書の流れから外れる、という点です。その結果、親要素は中身がないと判断され、高さがゼロになってしまいます。この状態を放置すると、HTML構造自体は正しくても、CSSの影響でレイアウトが破綻して見える原因になります。初心者が最初につまずきやすいポイントでもあり、なぜこうなるのかを知ることが、CSS理解の第一歩と言えます。

clearプロパティは、floatの影響を受けないようにするための基本的な方法です。clear bothを指定した要素を挿入することで、floatされた要素の下に通常の流れを取り戻すことができます。ただし、この方法はHTMLに余分な要素を追加する必要があり、構造が少し冗長になりがちです。小規模なレイアウトでは問題ありませんが、ページ全体で多用すると管理が大変になります。

そこで登場するのがclearfixです。clearfixは、疑似要素を使って親要素自身にclearの役割を持たせるテクニックです。HTMLを汚さず、CSSだけでfloatによる高さ消失を防げるため、長年にわたって多くのウェブサイトで使われてきました。特に、古いサイトやfloatベースで組まれたレイアウトを理解するうえでは、欠かせない知識です。

現在のウェブ制作では、flexboxやgridといった新しいレイアウト手法が主流になっています。しかし、既存のコードを読む場面や、過去のHTMLやCSSを修正する場面では、clearfixが使われているケースは今でも少なくありません。そのため、float、clear、clearfixの関係を理解しておくことは、実務においても大きな意味があります。

まとめとしてのサンプルプログラム


<style>
.container {
    border: 2px solid #333;
    padding: 10px;
}
.container::after {
    content: "";
    display: block;
    clear: both;
}
.item {
    float: left;
    width: 100px;
    height: 80px;
    margin-right: 10px;
    background-color: lightgreen;
}
</style>

<div class="container">
    <div class="item">項目A</div>
    <div class="item">項目B</div>
</div>
<p>clearfixを使うことで、親要素の枠線が中のボックスを正しく包み込みます。</p>
ブラウザ表示
先生と生徒の振り返り会話

生徒

「floatって、並べるだけの便利なものだと思っていましたが、親の高さが消える理由がやっと分かりました」

先生

「仕組みが分かると、レイアウトが崩れても慌てずに対応できますね。なぜ起きているのかを考えるのが大切です」

生徒

「clearで直す方法と、clearfixでまとめて解決する方法の違いも理解できました」

先生

「その理解があれば、古いCSSコードを見ても怖くありません。今後はflexboxと比べながら使い分けていきましょう」

生徒

「基礎を知っていると、新しい技術も安心して学べる気がします」

先生

「その通りです。CSSは積み重ねなので、今回のclearfixの理解は必ず役に立ちますよ」

2026年最新 スキルアップ・実践セミナー

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。

本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。

具体的なワークショップ内容と環境

【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。

【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。

この60分で得られる3つの技術資産

1. 現代のデファクトスタンダード「Flexbox」

要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。

2. メンテナンス性を高めるCSS設計の基礎

後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。

3. パフォーマンスと美しさの両立

画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。

※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!

各回少人数・マンツーマン形式で徹底サポート

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
New1
Bootstrap
Bootstrapモーダル入門:.modal /.modal-dialog /.modal-content の構造と役割をやさしく解説
New2
CSS
CSSでGoogle Fontsを使う方法を完全ガイド!初心者でもできるフォントの変更
New3
CSS
CSSの背景画像の繰り返しを制御しよう!初心者でもわかるrepeat-xとrepeat-yの使い方
New4
CSS
既存レイアウトにメディアクエリを追加する方法!初心者でもわかるレスポンシブデザインの基本
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.2
Java&Spring記事人気No2
Bootstrap
Bootstrap 5 と Tailwindの違いを比較:どっちを選ぶ?用途別の選び方を初心者向けに解説
No.3
Java&Spring記事人気No3
Bootstrap
Bootstrap Iconsのライセンスと商用利用の注意点【著作権と表記を初心者向けに解説】
No.4
Java&Spring記事人気No4
CSS
CSSのレスポンシブ新常識!メディアクエリとコンテナクエリの違いを徹底解説
No.5
Java&Spring記事人気No5
HTML
HTMLのliタグとは?初心者でもわかるul・ol内での正しい役割を完全解説
No.6
Java&Spring記事人気No6
Bootstrap
Bootstrapのテーブル固定ヘッダー完全ガイド!position: stickyとoverflowの実用レシピ
No.7
Java&Spring記事人気No7
CSS
CSSで要素を消す方法を完全ガイド!display:noneとvisibility:hiddenの違い
No.8
Java&Spring記事人気No8
CSS
CSSの状態によるセレクタ完全ガイド!初心者でもわかる:checkedと:disabledの使い方