clearfix的来龙去脉

在我们开发过程中,经常会遇到高度塌陷问题,这时候肯定得用上clearfix来解决
下面就简单聊一聊clearfix是怎么来的

第一步:现在情景假设一,盒子1里面套一个盒子2,仅设置盒子2大小和开启浮动,可以看见盒子2的父元素高度塌陷了
在这里插入图片描述在这里插入图片描述
第二步:在盒子1里面新增一个div即盒子3,并且给盒子3清除盒子2的浮动对它造成的影响,看看效果会怎么变化
在这里插入图片描述在这里插入图片描述
第三步,去掉aaa,可以发现高度不塌了!!!
在这里插入图片描述在这里插入图片描述
这样虽然可以解决问题,但是HTML结构里面增加一些无用的结构,我们希望HTML管自己的事,CSS管自己的事,那么我们想能不能在CSS里面添加一些样式,用来解决此问题呢?

第四步:就是用CSS中after伪类,往盒子1最后面添加内容
在这里插入图片描述在这里插入图片描述
第五步:去掉aaa,来看一下效果
在这里插入图片描述在这里插入图片描述
这样就比较完美解决高度塌陷问题了

好了,既然这样可以解决高度塌陷问题,那能不能仿照这个思路,把垂直外边距的重叠问题也解决了呢?
情景假设二,盒子1里面套一个盒子2,然后给盒子2设置一个垂直方向外边距,可以发现2个盒子的外边距都重叠了,盒子1也跟随着2往下跑
在这里插入图片描述
在这里插入图片描述
第六步:给盒子1前面添加个伪类
在这里插入图片描述在这里插入图片描述
我们可以看到,垂直外边距虽然不重叠了,但是也带来了新的问题,盒子2溢出

第七步:去掉aaa,同时打开display且把属性值设置为table,注意这里如果设置为block和inline-block,都会出现一些问题,原因就是block和inline-block都会霸占位置,而table本身却不占位置
在这里插入图片描述在这里插入图片描述这样就完美解决垂直外边距的重叠问题

第八步:把解决高度塌陷问题和垂直外边距的重叠问题的代码合在一起,起个名字clearfix,这就是它的来龙去脉啦
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46505015/article/details/105377739