このページでは、clearfixについて解説していきます。
例えば以下のようにboxを並べたとします。
<body> <div id="box1"> <p>box1</p> </div> <div id="box2"> <p>box2</p> </div> <div id="box3"> <p>box3</p> </div> <div id="box4"> <p>box4</p> </div> </body>
#box1 { background-color: #ff0000; height: 100px; width: 200px; } #box2 { background-color: #00ff00; height: 100px; width: 200px; } #box3 { background-color: #0000ff; height: 100px; width: 200px; } #box4 { background-color: #ffff00; height: 100px; width: 200px; }
ここでbox2とbox3を並べてみたいと思います。
その際に、float;left;を使用するのですが
float:left;をするとそのboxは存在しないものとして扱われてしまいます。
今回の場合、box4が並んでいるbox2とbox3の上にきて重なってしまいます。
そこでfloat:left;をした後に影響を与えないようにする文言がclearfixです。
どのようなものか少しみていきましょう。
以下のような状態になります。
<div id="box1"> <p>box1</p> </div> <div class="A"> <div id="box2"> <p>box2</p> </div> <div id="box3"> <p>box3</p> </div> </div> <div id="box4"> <p>box4</p> </div>
box2とbox3を括る新しいdiv,classを作りました。
#box2 { background-color: #00ff00; height: 100px; width: 100px; float: left; } #box3 { background-color: #0000ff; height: 100px; width: 100px; float: left; } .A:after { content: ""; display: block; clear: both; }
box1とbox4は変わりません。
このようにして後に影響を与えることなくboxを並べる事ができます。
以上