• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:IE7でclearfixが効かない?)

IE7でclearfixが効かない?

このQ&Aのポイント
  • winXP環境、xhtml+cssでwebページを作成していますが、IE7でclearfixが正しく機能せずに困っています。
  • 親ボックスの中に2つの子ボックスをfloatでレイアウトし、親ボックスにclearfixを指定していますが、IE7ではfloatされたdivが親ボックスからはみ出してしまいます。
  • Firefox3/IE6/IE8では表示に問題はありませんが、IE7だけが問題を起こしています。htmlやclearfixの記述に問題があるのか、調べるも解決策を見つけることができません。アドバイスをいただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • kuzumiHK
  • ベストアンサー率72% (132/183)
回答No.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; }

ppr
質問者

お礼

ご回答、ありがとうございました。 おかげさまで、ご教示いただいた方法で無事解決できました。

その他の回答 (1)

  • salonpath
  • ベストアンサー率48% (194/399)
回答No.1

.clearfix, #mainPanel, #contentPanel { display: block; } inlineblockをいきなりblockで上書きしてるけどこれ必要ですか? あと関係ないけど /* for IE6 and below */ の* htmlが.clearfixにしかついてないのおかしくないですか?

ppr
質問者

お礼

早速のご回答、ありがとうございました。 > /* for IE6 and below */ > の* htmlが.clearfixにしかついてないのおかしくないですか? ご指摘のとおりです。 第3者の目で見ていただいてやっと凡ミスに気づことができました。

ppr
質問者

補足

> inlineblockをいきなりblockで上書きしてるけどこれ必要ですか? display: inline-block; だけですと Firefoxでレイアウトが崩れる為、そちら方面の対策にしてます。 参考ページ:「inline-blockの奇妙な世界」 http://norisfactory.com/stylesheetlab/000039.php

関連するQ&A