父元素的 padding 和 子元素的 margin 冲突吗?

如图1所示,子元素的margin属性均不正常,第一个元素的上边缘和第二个元素的下边缘(即子元素和父元素接触的部分)均存在,但是没有把父元素撑开。如图2、3所示,第一个元素... 如图 1 所示,子元素的 margin 属性均不正常,第一个元素的上边缘和第二个元素的下边缘(即子元素和父元素接触的部分)均存在,但是没有把父元素撑开。如图 2、3 所示,第一个元素的下边缘和第二个元素的上边缘均存在,但是有重叠。如图 4 所示,将父元素的 padding 属性中上下填充设为 1 px,子元素就可以将父元素撑开,并且上下边缘只有 1px 只差,看不太出来,但是如果精确要求的话,还是难以达到,并且仍然没有解决图 2、3 所示的问题。鄙人不才,初次接触前端,恳请各位大佬解答。 展开
 我来答
网海1书生
科技发烧友

2021-08-14 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部

这种现象叫“外边距折叠”现象,即如果在父元素与其第一个子元素之间不存在边框、内边距、行内内容,也没有创建块格式化上下文、或者清除浮动将两者的 margin-top 分开;或者在父元素与其最后一个子元素之间不存在边框、内边距、行内内容、height、min-height、max-height将两者的 margin-bottom 分开,那么这两对外边距之间会产生折叠,此时子元素的外边距会“溢出”到父元素的外面

解决方案,你自己说的给父元素加padding是其中一种,此外,还可以给父元素加border,这两种方式其实很好理解,如果把父元素看作是一个细胞,那么border就相当于细胞壁,padding就相当于细胞膜,有了这两样东西(或其中之一),就可以阻止细胞内的细胞质渗透到外面啦。但是要想完美解决(就是不额外增加父元素的大小),可以把父元素的overflow属性设为hidden(或者auto、scroll均可,只要不是visible),这样子元素的外边距就不会和父元素的外边距发生折叠现象了!

xinfuyizhan
2021-08-13 · TA获得超过539个赞
知道小有建树答主
回答量:442
采纳率:41%
帮助的人:73.1万
展开全部
margin这个属性,本质上描述的是兄弟和兄弟之间的距离; 最好不要用这个marign表达父子之间的距离。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式