dポイントプレゼントキャンペーン実施中!

winXP環境、xhtml+cssでwebページを作成していますが、壁にぶち当たっています。

親ボックスの中に2つの子ボックスをfloatでレイアウト、というよくあるパターンですが、親ボックスにclearfixを指定しているのにIE7で表示すると、floatさせたdivが親ボックスからはみ出した状態で表示されます。
Firefox3/IE6/IE8で表示確認すると問題なく表示されます。

■htmlソース
http://bangn.web.fc2.com/testpage.html
■CSSソース
http://bangn.web.fc2.com/css/default.css(デフォルトスタイルリセット用)
http://bangn.web.fc2.com/css/base.css(divレイアウト、clearfix)
http://bangn.web.fc2.com/css/kakunin.css(レイアウト確認用に各divのborderを黒くしたもの)

htmlの書き方がおかしいのか?clearfixの記述がおかしいのか?とソースを何度も見直ししましたが、解決に至らず困っております。
どなたかアドバイスをいただけないでしょうか?

よろしくお願いいたします。

A 回答 (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;
}
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございました。

おかげさまで、ご教示いただいた方法で無事解決できました。

お礼日時:2009/07/02 09:26

.clearfix,


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

この回答への補足

> inlineblockをいきなりblockで上書きしてるけどこれ必要ですか?

display: inline-block; だけですと
Firefoxでレイアウトが崩れる為、そちら方面の対策にしてます。

参考ページ:「inline-blockの奇妙な世界」
http://norisfactory.com/stylesheetlab/000039.php

補足日時:2009/07/02 09:14
    • good
    • 0
この回答へのお礼

早速のご回答、ありがとうございました。

> /* for IE6 and below */
> の* htmlが.clearfixにしかついてないのおかしくないですか?

ご指摘のとおりです。
第3者の目で見ていただいてやっと凡ミスに気づことができました。

お礼日時:2009/07/02 09:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!