- ベストアンサー
IE7でclearfixが効かない?
- winXP環境、xhtml+cssでwebページを作成していますが、IE7でclearfixが正しく機能せずに困っています。
- 親ボックスの中に2つの子ボックスをfloatでレイアウトし、親ボックスにclearfixを指定していますが、IE7ではfloatされたdivが親ボックスからはみ出してしまいます。
- Firefox3/IE6/IE8では表示に問題はありませんが、IE7だけが問題を起こしています。htmlやclearfixの記述に問題があるのか、調べるも解決策を見つけることができません。アドバイスをいただけると助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
これが原因ですね。 /* for IE6 and below */ *html .clearfix, #mainPanel, #contentPanel { height: 1px; /*\*//*/ height: auto; overflow: hidden; /**/ } 縦幅を1pxにしないといけないのは、 .clearfixを単体で使用したい場合だけな気がします。 (それもあまりよい使い方とはいえませんが。。) #mainPanelや#contentPanelの縦幅を1pxにしないといけない理由がなければ、 /* for IE6 and below */ .clearfix{ height: 1px; } としたほうがよさそうです。 なにか問題が起こるようでしたら、 IE7ハックや条件付コメントでIE7のみheightをautoにしてみてはいかがでしょう。 *:first-child+html #mainPanel, *:first-child+html #contentPanel { height:auto; }
その他の回答 (1)
- salonpath
- ベストアンサー率48% (194/399)
.clearfix, #mainPanel, #contentPanel { display: block; } inlineblockをいきなりblockで上書きしてるけどこれ必要ですか? あと関係ないけど /* for IE6 and below */ の* htmlが.clearfixにしかついてないのおかしくないですか?
お礼
早速のご回答、ありがとうございました。 > /* for IE6 and below */ > の* htmlが.clearfixにしかついてないのおかしくないですか? ご指摘のとおりです。 第3者の目で見ていただいてやっと凡ミスに気づことができました。
補足
> inlineblockをいきなりblockで上書きしてるけどこれ必要ですか? display: inline-block; だけですと Firefoxでレイアウトが崩れる為、そちら方面の対策にしてます。 参考ページ:「inline-blockの奇妙な世界」 http://norisfactory.com/stylesheetlab/000039.php
お礼
ご回答、ありがとうございました。 おかげさまで、ご教示いただいた方法で無事解決できました。