1. 程式人生 > >Div巢狀引起子元素的margin-top不起作用

Div巢狀引起子元素的margin-top不起作用

最近研究css中遇到一個問題,業務情景是這樣的:在body內,有兩個div,div1是父元素,div2是子元素,設定div2的margin-top引起div1的變化,div2卻沒有變化。
先上程式碼:

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title>divtest</title>
        <style type="text/css">
            body {
                margin
: 0
; padding: 0px; }
#div1 { width: 200px; height: 200px; background: yellow; } #div2 { height: 100px; width: 100px; background: red; margin
: 20px
; }
</style> </head> <body> <div id="div1"> <div id="div2"> </div> </div> </body> </html>

效果如下:

目前具體的理論原因我沒有研究明白,但是一些解決方案可以解決這個問題:
1.div1設定border屬性
2.div2設定position為absolute或者relative,並且設定top left等屬性。
3.div1可以通過設定padding屬性。