日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何理解margin重叠问题

發布時間:2023/12/15 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何理解margin重叠问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、寫在前面
根據w3c規范,兩個margin產生折疊的必備條件:

1、必須處于常規文檔流(不能是浮動和定位)的塊級盒子,并且處于同一個BFC當中。 2、沒有線盒,沒有空隙,沒有padding和border將他們分割。 3、都處于垂直方向相鄰的外邊距。

二、例子

<!DOCTYPE html> <html lang="cn"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>p {font-size: 16px;line-height: 1;margin-top: 10px;margin-bottom: 15px;}.aa {border-bottom: 1px solid red;}.bb {border-top: 1px solid red;}</style> </head><body><div><p class="aa">AAA</p><p></p><p></p><p></p><p class="bb">BBB</p></div></body></html>

經過驗證,兩者的距離為15px,原因如下:

1、空的p標簽會重疊 2、margin-top和margin-bottom會重疊,所以距離為15px。

margin為負值時的注意事項:

1、margin-left為負值時,自身元素會向左移動。 2、margin-top為負值時,自身元素會向上移動。 3、margin-right為負值時,自身元素不受影響,但是相鄰元素會向左移動。 4、margin-bottom為負值時,自身元素不受影響,但是相鄰元素會向上移動。 5、position:absolute時,margin-right和margin-bottom為負值時,自身元素會受影響。

三、遇到面試題我們可以這樣回答
margin重疊是指在垂直方向上,相鄰的兩個元素的margin會發生重疊的情況。一般來說分為以下4種情況:
3.1、相鄰兄弟元素的margin-bottom和margin-top發生重疊,這時候我們可以設置其中一個元素為BFC即可解決
3.2、父元素的margin-top和子元素的margin-top發生重疊,他們發生重疊是因為這兩個元素是相鄰的,所以可以通過以下幾種方法來解決:

1、 為父元素設置padding-top或border-top來分割他們。 2、 設置父元素為BFC3、父元素和第一個子元素之間添加一個內聯元素來進行分割。

3.3、高度為auto的父元素的margin-bottom和最后一個子元素的margin-bottom發生重疊,他們發生重疊一個原因是他們是相鄰的,另一個原因是父元素的高度是不固定的,那么可以通過以下幾種方法來解決:

1、為父元素設置padding-bottom或border-bottom將他們分開。 2、 把父元素設置為BFC3、 父元素和最后一個子元素之間添加一個內聯元素進行分割。 4、 為父元素設置一個高度,height、max-height或者min-height都可以解決

3.4、沒有內容的元素,自身的margin-top和margin-bottom發生重疊,可以通過以下幾種方法解決:

1、元素設置padding或border。 2、給元素設置一個高度。

總結

以上是生活随笔為你收集整理的如何理解margin重叠问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。