国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

前端 - margin的問題,那個老哥幫我解釋下

瀏覽:141日期:2024-05-19 13:41:23

問題描述

<!DOCTYPE html><html lang='en'><head> <title>test</title> <style type='text/css'>* { margin: 0; padding: 0;}.a{ height:48px; background: #eee;}.b{ height:520px; background: #ff4949;}.c{ width:90%; height:300px; margin:20px auto; background: #fff;} </style></head><body><p class='a'></p><p class='b'> <p class='c'></p></p></body></html>

前端 - margin的問題,那個老哥幫我解釋下

p.c 不是應該被紅色環繞嗎?煩請那個老哥解釋下。

問題解答

回答1:

因為在BFC中,兩相鄰(兄弟或父子)、沒有邊框且沒有padding,元素的margin-top與其第一個常規文檔流的子元素的margin-top,會產生marign-collapse(外邊距折疊)。

你給b加邊框,

border: 1px solid transparent;

或者加padding,

padding: 1px 0;

都能消除。

或者,你可以給b加 overflow: hidden;。

可以參考:深入理解BFC和Margin Collapse

回答2:

你在.b中添加個overflow: hidden;就可以了。

因為overflow 使用除了 visible 以外的值(hidden,auto,scroll)會觸發BFC。什么是BFC?Block Formatting Contexts (塊級格式化上下文)具有 BFC 的元素可以看作是隔離了的獨立容器,容器里面的元素不會在布局上影響到外面的元素,并且 BFC 具有普通容器沒有的一些特性,例如可以包含浮動元素,上文中的第二類清除浮動的方法(如 overflow 方法)就是觸發了浮動元素的父元素的 BFC ,使到它可以包含浮動元素,從而防止出現高度塌陷的問題。

回答3:

overflow: hidden; 你把這句話加到 p.b 上。

回答4:

搜一下 “子元素margin影響父元素”

回答5:

這個叫外邊距重疊吧,子級元素的外邊距會影響父級元素,并且這兩的外邊距大整個容器的外邊距就以大的為準。這個時候應該選擇觸發BFC,BFC是什么前面幾位說的很清楚了,觸發BFC的情況有:

根元素

float屬性不為none;

position為absolute或fixed;

display為inline-block, table-cell, table-caption, flex, inline-flex;

overflow不為visible;

解決辦法:

如果你給父級加上overflow:hidden,或者加上透明邊框就可以解決了。

主站蜘蛛池模板: 黔江区| 三门县| 临朐县| 盐池县| 瓦房店市| 武穴市| 新河县| 衡东县| 开阳县| 宁河县| 神木县| 石阡县| 安新县| 房产| 长子县| 涞水县| 客服| 玉溪市| 随州市| 米易县| 祁东县| 休宁县| 伊宁县| 洛扎县| 广饶县| 缙云县| 全州县| 滦平县| 隆德县| 玉田县| 乌恰县| 泰州市| 古田县| 佛冈县| 新干县| 盐城市| 长春市| 潮安县| 南开区| 嵊泗县| 交口县|