子元素設定margin影響父元素
阿新 • • 發佈:2022-05-17
<!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;