2007年10月29日 21:39

CSSハック:clearfix

| http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/389

CSSによるレイアウトをおこなった場合、floatを利用することはスタンダードな手段だ。ところが親コンテナの中で子コンテナをfloatしてやると親コンテナの高さがおかしなことになる。

サンプル

id="clearFix"

id="cfLeft"

clearfixのテスト。左側に寄せるコンテンツ

id="cfRight"

clearfixのテスト。右側に寄せるコンテンツ

親コンテナに背景がある場合、背景が切れることになりその対策として下記のような.clearクラスをbrなどにくっつけてfloat解除をしていた。

サンプル


.clear {
    clear: both;
}

<div id="clearFix">
    <p>id="clearFix"</p>
    <div id="cfLeft">
    <p>float: left;</p>
    <p>clearfixのテスト。左側に寄せるコンテンツ</p>
    </div>
    
    <div id="cfRight">
    <p>float: right;</p>
    <p>clearfixのテスト。右側に寄せるコンテンツ</p>
    </div>
    
    <br class="clear" />
    
</div>


実行結果

id="clearFix"

float: left;

clearfixのテスト。左側に寄せるコンテンツ

float: right;

clearfixのテスト。右側に寄せるコンテンツ


floatがクリアされ、背景が表示されるので結果としては問題ないが、(x)HTMLに余分なソースを記述することになりちょっと気持ちが悪い。

そこでclearfixというCSSハックを利用する。


clearFix {
    zoom:1;/*for IE 5.5-7*/
}

clearFix:after {/*for modern browser*/
    content:".";
    display: block;
    height:0px;
    clear:both;
    visibility:hidden;
}

clearfix実行結果

id="clearFix"

float: left;

clearfixのテスト。左側に寄せるコンテンツ

float: right;

clearfixのテスト。右側に寄せるコンテンツ

上記以外にも書き方は多数ある模様。

CSSハック:clearfixタグ:

トラックバック

  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/389
コメント (0)
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?


先月アクセスが多かったページ