再讲解一下一个隐藏超出部分内容的属性为啥能够清除浮动呢?
问题描述:
还是不太能理解为什么 overflow: hidden; 属性可以实现清除浮动的前因后果。
相关截图:
尝试过的解决方式:
如何理解这个属性可以实现清除浮动呢?我是这么理解的:内部的子元素都浮动起来了,体现在父盒子上父盒子就会受到影响出现塌陷的现象。而父盒子使用超出就隐藏浮动的形式,这样子盒子的内容其实都超出了,就隐藏了浮动,也就是关闭了内部元素浮动造成对父盒子的影响,父盒子就又能被撑起来了不会塌陷了。
我不知道我理解得对不对,求老师再讲解一下一个隐藏超出部分内容的属性为啥能够清除浮动呢?
正在回答
同学你好,解答如下:
1、“内部的子元素都浮动起来了,体现在父盒子上,父盒子就会受到影响出现塌陷的现象”这句理解是对的,也是需要重点记忆的。使用浮动,存在的隐患就是“父元素高度塌陷”,父元素高度塌陷后,会带来一些样式布局上的bug。
2、overflow:hidden,虽然意思是“超出隐藏”,但是这个意思与“清除浮动”没什么关系。“超出隐藏”隐藏的不是浮动,而是子元素‘超出’的那部分。举个例子,有一个盒子(父元素),盒子里面有一朵花(子元素)。这朵花,处于浮动状态(子元素设置了浮动),此时它一半处于盒子内部,一半处于盒子外部。如果给盒子设置了“超出隐藏”,那么这朵花,处于盒外的那一半,就会消失,看不见了。处于盒子内部的这一半,还正常存在。这是超出隐藏,含义上的效果。
3、元素设置超出隐藏后,代码底层会做一些处理,进而实现“超出的部分,隐藏起来”的效果。这个底层处理方式,还会带来一个额外的效果,就是“清除浮动带来的不利影响“,即清除浮动。所以注意,清除浮动,并不是把浮动效果清除了,而是把浮动带来的隐患(高度塌陷等)清除了,只是平时会简单称为“清除浮动”。
4、使用overflow:hidden后,代码“底层”会形成BFC。知道BFC这个名词就行,不用过于关注。BFC简单理解,就是一种特殊的布局容器,它会重新计算元素的空间、高度等信息,重新计算的时候,会把浮动元素也考虑在内,实际的效果就是“清除浮动”。这一条内容,简单了解就行,不用过于关注。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星