1. 程式人生 > >關於margin重疊現象的解決方案

關於margin重疊現象的解決方案

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .box1 {
            width: 100px;
            height: 100px;
            background-color
: #8a8a8a
; margin-bottom: 30px; }
.box2 { width: 100px; height: 100px; background-color: #f88f3a; margin-bottom: 30px; margin-top: 30px; } .box3 { width: 100px; height: 100px; background-color
: red
; margin-top: 50px; }
</style> </head> <body> <div class="box1"></div> <div class="box2"></div> <div class="box3"></div> </body> </html>

對於上面的程式碼,就會出現margin重疊現象,box1和box2之間的margin並不是60而是30,box2和box3之間的margin是50。為什麼會出現這種情況呢?這就涉及到BFC的問題,在這我們不談論BFC的問題,可以去自行百度,我們主要講講解決方案。

方案一:

給每個box新增一個div,並新增一個類,並新增overflow:hidden;
.wrap {
    overflow: hidden;
}

方案二:

給每個box新增一個div,並新增一個類,並新增border: 1px solid transparent;
.wrap {
    overflow: hidden;
}

方案三:

給每個box新增一個div,並新增一個類,並新增padding: 1px;
.wrap {
    overflow: hidden;
}

方案四:

給每個box設定float屬性,並新增clear: both;
.box1,.box2,.box3  {
    float: left;
    clear: both;
}

暫時能想到的就這麼多,說的有不對的地方,歡迎各位前來討論。