一个计算高度的小问题(bfc、margin-top BUG)

本文详细解析了CSS布局中常见的高度塌陷问题及解决方法,深入探讨了BFC(Block Formatting Context)的概念与应用,解释了浮动元素、margin重叠等现象背后的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
感觉挺简单的两道题,实际上考察了许多小知识点

第二题:0

containner下两个item都是浮动元素,而浮动元素是脱离文档流的,会造成父元素高度塌陷,也就是不会撑开父元素的高度,所以container高度为0;

第一题:30px

  • 首先,container设置border:1px;边框只设置粗细是无效的,必须指定边框的样式,才会出现边框,例:border:solid;
  • 其次,container是一个BFC,它里面两个相邻item的上下margin会发生重叠,所以两个item中间只有10px的像素
  • 第一个item的margin-top触发了BUG,实际作用在了container身上

还需要知道的其它知识点

  1. 只要有元素,html标签的宽度是自动撑满的,html的高度包括了上下边缘处子元素的上下外边距
  2. body标签默认自带8px的外边距,只要有元素,body的宽度也是自动撑满的,body的高度不包括上下边缘处子元素的上下外边距(body加入overflow: hidden;body的高度才会恢复)
  3. 未设置宽高的div与body标签一样,高度不包括上下边缘处子元素的上下外边距(div加入overflow: hidden;div的高度才会恢复)
  4. margin-top的一个bug:在父元素没有设置上边框(border-top)与上内边距(padding-top)并且子元素没有设置浮动属性(float)的时候,第一个子元素的上外边距(margin-top)会作用在父元素身上

关于BFC可以看这位老哥写的,链接在下
什么是BFC?看这一篇就够了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值