CSSのfloatプロパティを分かりやすく解説! その他の用途と代替方法もご紹介


画像の配置

float を使用して、画像をテキストの横に配置することができます。これは、記事に画像を挿入したい場合などに役立ちます。

.image {
  float: left;
  margin-right: 10px;
}

ナビゲーションバーの作成

float を使用して、水平方向に並んだナビゲーションバーを作成することができます。

#nav li {
  float: left;
  list-style: none;
}

フローティング広告の作成

float を使用して、ページの脇にフローティング広告を作成することができます。

#ad {
  float: right;
  width: 300px;
}

float を使用する際には、以下の点に注意する必要があります。

  • float は、古いブラウザでは正しくレンダリングされない場合があります。レイアウトを古いブラウザに対応させる場合は、flexboxgrid などの代替方法を検討する必要があります。
  • float を使用すると、要素が通常のドキュメントフローから外れます。つまり、float で配置された要素の下に他の要素が流れてこなくなります。これを修正するには、clear プロパティを使用する必要があります。


<div class="article">
  <img src="image.jpg" class="image">
  <p>本文</p>
</div>
.article {
  width: 600px;
}

.image {
  float: left;
  margin-right: 10px;
  width: 200px;
}

ナビゲーションバーの作成

以下のコードは、水平方向に並んだナビゲーションバーを作成する例です。

<nav>
  <ul>
    <li><a href="#">ホーム</a></li>
    <li><a href="#">ブログ</a></li>
    <li><a href="#">お問い合わせ</a></li>
  </ul>
</nav>
nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

nav li {
  float: left;
  padding: 10px;
}

フローティング広告の作成

以下のコードは、ページの脇にフローティング広告を作成する例です。

<div id="ad">
  <p>広告</p>
</div>
#ad {
  float: right;
  width: 300px;
  background-color: #ccc;
  padding: 10px;
}


以下は、「float」の代替となる主な方法です。

flexbox

flexbox は、Webページのレイアウトを作成するための強力で柔軟なモジュールです。float と異なり、flexbox を使用すると、要素をさまざまな方法で配置し、サイズを変更し、整列することができます。

flexbox を使用して、画像をテキストの横に配置する方法は次のとおりです。

.container {
  display: flex;
}

.image {
  flex: 0 0 200px; /* 画像の幅を200pxに固定 */
  margin-right: 10px;
}

flexbox を使用して、ナビゲーションバーを作成する方法については、次のリソースを参照してください。

grid

grid は、Webページのレイアウトを作成するためのもう1つの強力なモジュールです。grid を使用すると、要素を行と列に配置し、さまざまな方法でサイズを変更し、整列することができます。

grid を使用して、画像をテキストの横に配置する方法については、次のリソースを参照してください。

float 以外にも、要素を横並びに配置する方法がいくつかあります。以下に、いくつかの例を示します。

  • absolute positioning を使用する
  • table レイアウトを使用する
  • display: inline-block を使用する