- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:oveflow、margin等の表示について質問です)
oveflow、margin等の表示について質問です
このQ&Aのポイント
- overflow: hidden を指定すると、目的通りに表示されることがわかりました。
- containerのmargin-topを指定せず、wrapperにpadding-top:35pxを指定する方法でも目的通りに表示されました。
- 個人的な感覚ではcontainerのmarginをいかす方法で進めたいですが、何故oveflowで解決できたのかがわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#66720
回答No.1
試しにFirefox2と3で見てみましたが、特に問題はなかったです。 なぜでしょう・・・ 上のソースでまだ再現できますか?
その他の回答 (1)
- include_ab
- ベストアンサー率60% (35/58)
回答No.2
ちょっと確認がとれていないので、間違っているかもしれませんが。 多分、マージンの相殺の為だと思われます。 親要素(#wrapper)と子要素(#container)でもマージンの相殺が起こります。 これは、垂直方向だけに適応されます。 また、相殺が発生する条件は、 ・float、positionの指定がない。 ・親要素に縦方向のborder、paddingが指定されていない。 という場合だったと思います。 つまり、親要素のmargin:0と子要素のmargin:35pxが相殺され、 あたかも親要素にmarginがあるかのような"見た目"になります。 overflowに関しては、もうおわかりと思いますが、 子要素のmarginが親要素から飛び出るのでその分が処理されているのだと思います。 ちょっとあやふやなので、詳しくはW3Cの仕様書などで調べてみて下さい。
質問者
お礼
include_ab様 ご回答ありがとうございます。お返事が遅くなってしまい申し訳ありません。 隣接するボックスで縦のマージンが相殺されることは知っていたのですが親子で関係でも発生するのですね…。 発生条件等もあったようで、overflowに関しても納得です。 大変参考になりました。ありがとうございます!
お礼
metametamu様 ご回答ありがとうございます。 当方Firefox3では未確認なのですが、firefox2で上記のcssですと、やはり背景の表示に問題が出てしまいます。#wrapperにoverflowを追記するだけで解決はするのですが…。 ちなみに、css側に「@charset "UTF-8"」を記述しています。 htmlのhead内は以下の通りです。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Test</title> <link href="../css/***1.css" rel="stylesheet" type="text/css" /> <link href="css/***2.css" rel="stylesheet" type="text/css" />