要素を右側、もしくは左側に寄せるとき良く使われる「float」ですが、今回はこれの解除の方法について。
CSSを勉強したての頃は、回り込みをしたい要素の下の要素に影響して表示が崩れ、悩まされたことがありました…。
今回参考にしたサイトはこちら。
方法だけでなく、デメリットも記載されており、とても参考になります。
まずは、回り込みの記述についてはこちら。
/* 左側への回り込み */
div {
float: left;
}
この記述があると、指定された要素(今回はdiv)が左寄せになります。
なお、あとに続く要素はその反対側に回り込みます。
で、これを解除する方法は、まず単純に「clear:both」を指定する方法。
■ clear:both;
<div class="left">
左寄せ
</div>
<div class="clear">
左寄せ 解除
</div>
.left{
float: left;
}
.clear{
clear: both;
}
こんな感じで、左寄せ、もしくは右寄せした要素の後ろで指定します。
これは一番わかりやすいかな?
ただし、要素を追加する必要があるため、少し使いにくい場面がありそうです。
そのため、私が今回使ったのがこちら。
■ overflow:hidden;
子要素に float が指定してある場合、親要素にこの「overflow:hidden;」を指定する方法です。
これを指定することで、親要素が高さを持つので、回り込みを回避できるとのことですが…原理はいまいちわかっていません。
ただ、clear: both; と違って、要素を追加せずに済むため、これが一番使いやすいのではないかと思いますね。
あと、使ってみたいのがこちら。
■ clearfix(クリアフィックス)
親要素にこのclearfixを指定すると、最後に子要素をCSSで擬似的に作り出し、それにclear: both;を指定してfloatを解除しているのだとか。
<div class="parent">
<div class="child">要素1</div>
<div class="child">要素2</div>
<div class="child">要素3</div>
</div>
.parent:after {
clear:both
}
.child {
float: left;
}
以上、回り込みの解除方法でした。
個人的なおすすめは overflow:hidden; ですね。