1. 程式人生 > 其它 >子元素設定margin影響父元素

子元素設定margin影響父元素

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            *{margin: 0;
                font-size: 0px;}
            .d1{height:300px;
                background-color: gray;
            }
            .d2{
width: 100px; height: 100px; background-color: red; margin-top: 50px; } </style> </head> <body> <div class="d1"> <div class="d2"> </div> </
div> </body> </html>

.d2設定margin後父元素直接下移。

因為巢狀也屬於毗鄰,所以在樣式表中優先順序更高子元素的margin會覆蓋外層父元素定義的margin。

父元素的第一個子元素的上邊距margin-top如果碰不到有效的border或者padding.就會不斷一層一層的找自己 “領導”(父元素,祖先元素)的麻煩。只要給領導設定個有效的 border或者padding就可以有效的管制這個目無領導的margin防止它越級,假傳聖旨,把自己的margin當領導的margin執行。

解決辦法:

1、父元素或者子元素使用浮動或者絕對定位。
2、父級設定overflow:hidden
3、父級設定padding(破壞非空白的摺疊條件)  本例設定padding: 50px;  也就是剛好等於子元素的margin: 50px;
4、父級設定border

5、父元素設定position: relative;  子元素設定position: absloute;