2009.07.05
いまさらclearfix …だけど
サイトをぷちブラッシュアップしておりまして、ボタンのロールオーバーやらcss を書き直していたところ、どうもカラムとかボタンのfloatを解除させるための
1 2 |
<div class="clear_box"></div> .clear_box {clear: both} |
とかが邪魔くさい感じがするので、いまさらclearfixなるものに挑戦してみたわけですが…
1 2 3 4 5 6 7 8 9 |
.clearfix:after { content:"."; clear: both; height:0; display: block; visibility: hidden; } .clearfix {display: inline-block;} .clearfix {display: block;} |
後続に何も無い最終のボックスにこのclearfix技を掛けると、Mac版両ブラウザ、Safari4.0 、Firefox3.5で下に謎マージンが現れてしまいまする。
具体的にはフッターの中にナビがあるとか。
画像は昨夜、検証のために作ったどうでもいいページです。
全体像。
スクロールできるように画面を小さくして…。
スクロールさせると…
紺backのfloat横並びリストの下に謎スペース。
本来なら下にぴったり沿ってほしい。
1 2 |
line-height: 0; font-size: 0; |
これを.clearfixに追加で解決するはずなんだけど…
う〜ん、実に惜しい! 1pxくらいの隙間が残ってます。
最終boxをなんだかvisibility: hidden; しないような気がします。
対処方というか、Safari4.0 、Firefox3.5では有効なんですが…
1 2 3 4 5 6 7 8 9 10 11 |
.clearfix:after { content:"."; clear: both; height:0; display: block; overflow: hidden; /* line-height: 0; font-size: 0; */ } .clearfix {display: inline-block;} .clearfix {display: block;} |
visibility: hidden; のかわりにoverflow: hidden;
line-height:0;もfont-size:0;もいらんです。
と、こうなるわけですが、考え方は変じゃないんですよね。
height:0;のオーバーフローを隠すですから。
ただ、他のブラウザでは検証しておりませんので、使えるかどうかわからず、
自分自身でも使ってないという…すんません。
floatをclearしないとなんとなく気持ちが悪いという理由で、ページ最後のナビに使ったlistのfloatも何とかしたかったんですが、考えて見ればその後に内容が続くことは絶対にないので、floatしっぱなしでもなんら問題はないわけで…現在 さわやかまみれのフッターはfloatしっぱなしです。
後記————————————————–
残念!Win版 Firefox3.53とIE8で確認したところ、無効でした。謎マージンが空いてしまいます。
スポンサーリンク
コメントをどうぞ