總體來講,這個問題是垂直外邊距合併問題。
也就是乙個div,作為乙個元素的第乙個子集元素情況下,在設定了外邊距之後,會與父級的div元素在某種情況下進行合併,那麼在什麼情況下呢
第乙個元素的上外邊距會去查詢父級的border或者padding,如果沒找到,就會向外找margin,如果找到margin,相鄰的兩個margin會進行合併,這也就是垂直外邊距合併。
也就是說沒有找到邊界,就會一直向外查詢是否需要外邊距合併,除非遇到了border或者padding,則終止這個想法。
所以,在父級元素設定了border或者padding之後,就不會再繼續影響父級元素的高度和位置了。
子元素的垂直margin值對父元素的影響
首先得說一下 margin摺疊 所謂margin摺疊,即相鄰的不同margin值有可能會被摺疊成同乙個margin值。看清楚哦,只是有可能會。至於哪些是相鄰元素?哪些又會存在摺疊?這個鏈結裡闡述很全面。這裡只分析子元素的垂直margin值對父元素的影響 html結構 灰色父塊,紅色子塊,綠色子塊,白...
子元素設定margin會影響父元素問題
參考 給子元素設定的margin結果作用在父元素身上,類似於 越級偽命令 問題的解決辦法有三種 1 為父元素設定padding。2 為父元素設定border。3 為父元素設定 overflow hidden 如果子元素不是div,p,h1等塊級標籤,而是a,span等行內標籤的話,則不會出現marg...
關於子元素的margin top影響父元素
來看看這個問題 子元素為什麼設定margin top會影響父元素的margin top。先把html,body,div的預設margin,padding設為0,再給父元素設定寬高,子元素設定寬高。然後又設定子元素的margin top為20px。效果如下 查了下,簡單來說是因為父元素沒有設定padd...