[CSS]floatを解除する「clearfix」のIE6/7に対応した改良版
Post on:2009年12月10日
floatを解除する際にclearを使用せずに解除する「clearfix」の改良版をPerishable Pressから紹介します。
いわゆる旧タイプのclearfixはMac IEも対応ブラウザに含まれているため、スタイルシートは下記のようになります。
旧タイプのclearfix
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<textarea name="code" class="css" cols="60" rows="5"> .clearfix:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } .clearfix { display: inline-table; } /* Hides from IE-mac */ * html .clearfix { height: 1%; } .clearfix { display: block; } /* End hide from IE-mac */ </textarea> |
上記のスタイルシートからMac IEの対応をはずし、新たにIE6/7へのスタイルシートを追加したものが改良版の新タイプになります。
新タイプのclearfix
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<textarea name="code" class="css" cols="60" rows="5"> /* new clearfix */ .clearfix:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } * html .clearfix { zoom: 1; } /* IE6 */ *:first-child+html .clearfix { zoom: 1; } /* IE7 */ </textarea> |
IE6/7用のスタイルシートはhasLayoutの値をtrueにするものです。hasLayoutの詳しい説明は以前のエントリーを参照ください。
IEでのCSSのバグを回避するhasLayout
sponsors