clear:both只能清除前面元素的浮动吗,没有太清楚

来源:2-5 项目作业

期限_

2021-02-02 21:26:10

​clear:both只能清除前面元素的浮动吗,没有太清楚

写回答

1回答

好帮手慕夭夭

2021-02-03

同学你好,这里描述的是有问题的,清除浮动并不是把元素的浮动给清除了,而是清除浮动元素给其他元素带来的影响。一般常见的影响有如下几种,参考理解一下:

1、两个盒子都设置浮动,第二个盒子受到第一个盒子的影响,跟在它后面浮动。


http://img.mukewang.com/climg/601a01f209da874804040416.jpg

效果如下:


http://img.mukewang.com/climg/601a0246092eb3e807750214.jpg

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

http://img.mukewang.com/climg/601a026a096d0f9903380096.jpg

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

http://img.mukewang.com/climg/601a02db092cbe7b06410268.jpg

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

http://img.mukewang.com/climg/601a0307096d618e03820416.jpg

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


http://img.mukewang.com/climg/601a02f1098e43c502340160.jpg

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

http://img.mukewang.com/climg/601a036a096c46e305890275.jpg

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

http://img.mukewang.com/climg/601a04ac09bbbc5204480566.jpg

效果如下 :

http://img.mukewang.com/climg/601a04c00928d2b307170254.jpg

给父元素清除浮动,解决高度塌陷问题:

给父元素清除浮动的方式,固定记一下。在父元素里面的最后添加一个空div,然后设置清除浮动效果


http://img.mukewang.com/climg/601a05c809c79fad04660329.jpg

效果如下:

http://img.mukewang.com/climg/601a060709ce367807620244.jpg


祝学习愉快~

0

0 学习 · 15276 问题

查看课程