2012-01-05 16 views
4

、私は次のスタイルを持つ、比較的配置のdivを持っている:は相対(位置)のdiv要するに

.div1 { 
    background-image: url(../images/header.jpg); 
    background-repeat: no-repeat; 
    width: 100%; 
    height: 269px; 
    margin:0 auto; 
    padding:0px; 
    position: relative; 
    background-position: center top; 
} 

とその中の別のdivが、このようなスタイル:

.div2 { 
    position: relative; 
    width: 815px; 
    height: 74px; 
    margin-top:100px; 
} 

興味深いことに、div1(親)内のdiv2(子)のマージンとそれが相対的に配置されていることにより、これは100px単位でdiv1(奇妙なことです)をプッシュします。さらに興味深いことに、div1に境界線を追加したり、div1に何かを書き込んだりすると、この動作はなくなります。

なぜこのようなことが起こっているかを知っていて、この問題を解決するきっかけがあれば、私はあなたの脳を選ぶことが大好きです。

+0

div1は.headerでdiv2はdiv.testですか? – Jawad

+0

はい、@ Jawad。問題をありがとう、私は彼らが異なる名前を持っていたことを認識していないと私は問題を修正した。 –

答えて

1

があります。

スペック:

いくつか簡単に読み:

すでにアラムMkrtchyanによって示唆されるように、この場合の最も簡単な修正は.headeroverflow: hiddenを追加するために、おそらくです。 Here are some more ideas.

3

これが原因で、 "崩壊の余白" で何が起こっている例

http://jsfiddle.net/amkrtchyan/urNRR/

.header { 
    background-image: url(../images/header.jpg); 
    background-repeat: no-repeat; 
    width: 100%; 
    height: 269px; 
    margin:0 auto; 
    padding:0px; 
    position: relative; 
    background-position: center top; 
    overflow: hidden // add this 
} 
+0

アラムのおかげで、これは本当に面白いアイデアでした –

+0

あなたは ';)' –

関連する問題