個人的には実務で年に1回見るかどうかという頻度ですが、実装方法を知らないと『???』となること間違いなしだと思うので、ここに書いておきたいと思います。
(有料になっていたらすいません🙇♂️)
floatを使って画像に対してテキストを回り込ませる方法
『画像に対してテキストを回り込ませる』とはどういう事か?と思うかも知れませんが、文章で解説するより見た方が早いと思うので一旦こちらを見て下さい。
See the Pen
float by junpei (@junpei-sugiyama)
on CodePen.
左上のHTMLかCSSをクリックすると画面幅が狭くなりますが、それに応じてテキストも動きます。
右上の『EDIT ON CODEPEN』をクリックすると全画面になるので、画面幅を変えながら確認すると分かりやすいと思います。
これはこの後解説するfloat
というCSSを使っているのですが、float
を使わないとこうなります。
See the Pen
float未使用 by junpei (@junpei-sugiyama)
on CodePen.
コード解説
それではコードを見てみます。
<div class="container">
<div class="sample-img">
<img src="画像パス" alt="">
</div>
<div class="text">
<p>Lorem ipsum・・・</p>
<p>テキストが入ります・・・</p>
</div>
</div>
.sample-img {
float: left; /* 画像を左にする場合 */
margin-right: 20px; /* テキストとの余白 */
max-width: 500px;
width: 50vw;
}
p {
font-size: 20px;
line-height: 1.5;
}
img {
height: auto;
width: 100%;
}
.text {
padding: 20px;
}
ポイントは3点。
- HTMLはimgを最初に書く
- img(またはimgの親要素)にfloatを書く
- テキストとの余白はimg(またはimgの親要素)にmargin(paddingでも余白は作れます)
特に最初の『HTMLはimgを最初に書く』はハマりやすいポイントかと思うのでご注意下さい。
あとは『テキストを回り込ませる』なのでテキストにfloat
を書きたくなりますが、書くのは画像の方です(『画像を回り込ませる』という言い方をする方もいます)
上記は画像を左にする場合で、右にする場合は少しコードを変えます。
.sample-img {
float: right; /* 画像を右にする場合 */
margin-left: 20px; /* テキストとの余白 */
}
See the Pen
float(画像右) by junpei (@junpei-sugiyama)
on CodePen.
2つ目の文章だけ回り込ませない方法
先ほどはpタグが2つなので2つの文章が書いてありましたが、2つ目の文章は回り込ませたくない場合はどうすればいいでしょうか?
その場合は2つ目のpタグにclear: both;
を書けばOKです。
See the Pen
Untitled by junpei (@junpei-sugiyama)
on CodePen.
float
は昔は横並びにしたい時に使っていましたが、現在ではテキストの回り込みくらいでしか使う機会はないかと思いますが、たまーに今回のようなデザインもあるので頭の片隅に覚えておきましょう。
また、円形画像にテキストを回り込ませる方法については、以下の記事を参照下さい。
【CSS】円形画像に沿ってテキストを回り込ませて表示する方法
続きを見る
以上になります。