clear:both只能清除前面元素的浮动吗,没有太清楚
来源:2-5 项目作业
期限_
2021-02-02 21:26:10
clear:both只能清除前面元素的浮动吗,没有太清楚
1回答
同学你好,这里描述的是有问题的,清除浮动并不是把元素的浮动给清除了,而是清除浮动元素给其他元素带来的影响。一般常见的影响有如下几种,参考理解一下:
1、两个盒子都设置浮动,第二个盒子受到第一个盒子的影响,跟在它后面浮动。

效果如下:

第二个盒子设置清除浮动:

那么清除的是前面浮动元素(即蓝色盒子)对它的影响,所以它会在第二行浮动:

2、第一个盒子设置浮动,第二个盒子不设置浮动时,因为第一个盒子脱离文档流,第二个盒子没有脱离文档流,所以第二个盒子会往上移动,被第一个盒子盖住

效果如下,没有完全盖住是因为代码中设置了间距:

此时给第二个盒子清除浮动,清除第一个盒子的影响,就不会被它挡住了。如下:

3、第三种情况是子元素浮动,父元素没有设置高度时,会导致高度塌陷(即高度为0)

效果如下 :

给父元素清除浮动,解决高度塌陷问题:
给父元素清除浮动的方式,固定记一下。在父元素里面的最后添加一个空div,然后设置清除浮动效果

效果如下:

祝学习愉快~
相似问题