imgのフロート〜CSS フロートと回り込み

HTML&CSS

p要素の中のimgをフロートして右または左に移動させて、次の段落のp要素のテキストを回り込みをさせたい場合です。

スポンサーリンク

imgの親要素にフロートをかける

HTMLのコードは次のようにimgを囲むp要素にclass名を付けて対象のp要素をフロートさせます。
sampleはこちら

<p class="my_photo"><img src="DSC0025.jpg" width="380" height="255"></p>
<p>ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ</p>

CSSは次のようになります。background-colorはimgを囲むp要素の挙動がわかりやすいように背景色を着けました。
vertical-alignはpaddingの上下幅を合わせるために入れています。これを使用しないと下のpaddingが微妙に大きくなります。これはimgがインライン要素であるためフォントのベースラインに下方が揃ったために起こります。

.my_photo {
	background-color: #FCF;
	padding: 5px;
	float: right;
	margin-left:10px;
}
img{
	vertical-align:bottom;
}

img要素自体にフロートをかける

HTMLのコードは次のようにimgに直接class名を付けてimgをフロートさせます。
sampleはこちら

<p class="photo_base"><img src="DSC0025.jpg" width="380" height="255" class="my_photo"></p>
<p>ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ</p>

.photo_baseに背景色を設定してわかりやすくしましたが、背景色は表示されません。それはimgがfloatしたためにimgをp.photo_baseが囲めなくなっているためです。p要素はそんな状態で放置されることになります。

.my_photo {
	padding: 5px;
	float: right;
	margin-left:10px;
}
.photo_base{
	background-color: #FCF;
}
img{
	vertical-align:bottom;
}

結果としてどちらもどこかでclearでフロートを解除する必要がありますが、後者の場合はimgを囲むp要素が気持ち悪い状態のまま放置されることを認識しておく必要があります。
.photo_baseにたいしてoverflow:hiddenを使用すると次のような結果になります。

sample3

スポンサーリンク

お勧め書籍

AI関連

Python

JavaScript

HTML CSS関連

統計学

HTML&CSS
スポンサーリンク
dororoをフォローする
IT工房|AI入門とWeb開発
タイトルとURLをコピーしました