CSSでフロートの回り込みを解除する方法

div要素やli要素に「float:left」などを使って横並びにするというのは、WEBデザインで良く行われることだと思います。

しかし、そこで問題があって、

  • 親要素の高さが失われて、背景が途切れる。
  • 次の関係ない要素までも回り込んでしまう。

こういう問題を解決する方法を3つ紹介する。

1.「clear:both;」のdiv要素を追加する。

回り込みを行っている要素の最後に、「clear:both;」を付けた空のdiv要素を追加する。

2.親要素に「:after」擬似要素を使う

「:after」擬似要素は、設定した要素の中の最後に疑似要素を追加するものです。

擬似要素として設定するコンテンツは、:after」擬似要素の中の「content」の値として設定します。ここでは何も表示させないので「”.”」など何でもいいです。文字列や画像urlなどを入れることができます。

.clearfix:after {
display:block;
clear:both;
height:0px;
visibility:hidden;
content:”.”;
}
.clearfix {
min-height: 1px; /*IE6、7対策*/
}
* html .clearfix {
height: 1px;
/*¥*//*/ /*MAC IE5.x対策*/
height: auto;
overflow: hidden;
/**/
}

3.親要素に「overflow:hidden」を設定する。

親要素に「overflow:hidden」を設定することでfloatによる回り込みを解除することができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です