在介绍清除浮动的方法之前,先来了解下浮动可能造成的影响。在文档流中,假如父元素未设置高度,那么父元素的高度是由子元素撑起来的。但是当子元素设置浮动之后,子元素就会脱离文档流,父元素的高度就不会受到浮动子元素高度的影响了。
但是如果我们想要下面这种效果:
有几种方法可以实现:
- 方法1:给父元素设置 overflow: hidden || auto || scroll
这种方法有一个缺点,当子元素宽度比父元素宽的时候,溢出的部分会被隐藏。
- 方法2 给父元素设置display: table || inline-block
- 方法3 若子元素高度已知而且固定,可以给父元素设置一个高度
- 方法4 在浮动子元素的后面加一个空元素,并为其添加clear: both的属性
- 方法5 给父元素设置一个伪类(推荐)