這篇文章主要介紹了詳解css邊距重疊的幾種解決方案,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧
今天整理了一下用css防止邊距重疊的幾種方法
#先假設一組dom結構
<p class="parent"> <p class="child"> </p> </p>
通常情況下,如果給子元素設定margin,就會產生這個屬性對父元素也產生了同樣的效果,然而
這其實不是我們想要的結果,我們只想對子元素設定margin,那現在我們該怎麼做呢?
(1) 為父元素設定邊框
.parent { width: 300px; height: 300px; border: 1px solid #ccc; } .child { width: 200px; height: 200px; margin: 20px; }
(2)為父元素新增padding
.parent { padding: 1px; width: 300px; height: 300px; } .child { width: 200px; height: 200px; margin: 20px; }
(3)在子元素上方加一個有寬高的兄弟元素,記住是有寬高的。
<p class="parent"> <p style="width: 20px;height: 20px;margin-top: "></p> <p class="child"> </p> </p>
(4)為父元素設定overflow: hidden; 屬性
##
.parent { overflow: hidden; width: 300px; height: 300px; } .child { width: 200px; height: 200px; margin: 20px; }
(5)為子元素設定display: inline-block;(如果子元素是行內元素或行內區塊級元素則不會產生邊距重疊的問題)
.parent { width: 300px; height: 300px; } .child { width: 200px; height: 200px; margin: 20px; display: inline-block; }
(6)使子元素脫離文檔流這個實現的方法有很多,浮動,絕對定位等,這裡我就不做具體的解釋了。
以上是總結解決css邊距重疊的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!