floatさせた画像がdivからはみ出すのを回避する方法

はじめに

divで枠を作ってその中に画像をfloatで挿入した際、テキスト量が少ないと画像が枠からはみ出る事があります。

今回はfloatさせた画像がdivからはみ出すのを回避する方法になります。

目次

ひとまずfloatで画像を配置してみる

まずはdivで黒背景(#000)の枠を作り、その中にfloatで画像を挿入します。

HTML

  1. <div class="box">
  2.  <img src="画像のパス" alt="">
  3.  <p>テキストテキストテキスト~</p>
  4. </div>

CSS

  1. .box {
  2.  background: #000;
  3.  padding: 15px;
  4.  box-sizing:border-box;
  5. }

できあがったもの

祇園精舍の鐘の声、諸行無常の響きあり。娑羅双樹の花の色、盛者必衰の理をあらはす。

このように画像をfloatさせた際、テキスト全体の縦幅より画像の縦幅が大きいと、divから画像がはみ出ます。

疑似要素を追加して、画像がはみ出すのを回避する

画像がはみ出すのを回避するには、CSSに以下の疑似要素div:afterを追記します。

HTMLの変更は無いため割愛します

CSS

  1. //上記のCSSに以下を追記
  2. .box:after {
  3.  display:block;
  4.  content:'';
  5.  clear:both;
  6. }

できあがったもの

祇園精舍の鐘の声、諸行無常の響きあり。娑羅双樹の花の色、盛者必衰の理をあらはす。

このように、テキスト全体の縦幅より画像の縦幅が大きくても、divから画像がはみ出なくなります。