CSS clearfixについて

clearfixについての解説

HTML

<!--
    ■■■clearfix (cf:after)の説明■■■
    #containerにclass cfを設定して
    後続の回り込みが解除されるか確かめてください。
    
    1. :afterを指定した要素はその閉じタグの直前(この例では</div>の手前にcontentで指定した内容が挿入される)
    2. content: '' 何も入れない。
    3. display: tableもしくはblockを設定し、
    :after をブロック要素に変換(インライン要素ではfloatを解除できない)した後、
    clear: bothにてleftとrightの回りこみを解除する。
    4. :afterの部分がいつも不可視状態でわかりにくいので、
      今回はheight:10px width:20% 背景赤色 を設定し、見た目上わかりやすくした。
    5. displayで、tableもしくはblock要素に変換された :after が
    CSSにより</div>直前に擬似的に挿入され、それにclear:bothを当てることで
    回りこみを解除する役を買ってくれている。
    6. この理解ができたら、cf:after から height,width,background-colorの指定を取る。
-->
<div id="container" class="cf">
    <div id="left">left</div>
    <div id="right">right</div>
</div>
もじもじもじもじもじもじもじもじもじもじもじもじ

CSS

.cf:after {
    content:'';
    clear: both;
    display: table;
    
    /*以下都合上のCSS */
    height: 10px;
    width: 20%;
    background-color: red;
}
#container {
    width: 80%;
    border: 1px solid black;
}
#left {
    float: left;
    width: 40%;
    background-color: green;
}
#right {
    float: right;
    width: 50%;
    background-color: skyblue;
}