浮动清除
可以理解有两个思路,四个方法
第一种思路:给浮动元素后面的元素设置清除浮动
第二种思路:BFC,给父容器添加overflow:hidden属性,让父元素变为一个独立容器
为父元素添加 overflow:hidden 属性,这样会让浮动元素再次回到容器层,从而把容器的高度撑起来,对应标准答案方法二。
这里就涉及到了 BFC,可以搜索一下关键字,有一个问答里我详细讲了 BFC。BFC 的一个主要作用就是在其内部形成一个独立空间,让浮动元素再次回到容器层,起到清除浮动的效果。
伪元素:在内容元素的前后添加一个元素。如:给父元添加before属性(具体写法可以参考标准答案给的链接),就会在这个父元素内部子元素的最前面添加一个伪元素,变成这个父元素的第一个子元素,这个伪元素可以在外部被看到,可以为其像真元素那样设置样式,添加内容,但是源码中却找不到,这就是伪元素
个人其实不是太认同方法三,给容器元素添加浮动,那这个容器元素又处于浮动状态,仍然会脱离文档产生浮动溢出,所以毫无意义。这个方法其实也是想到 BFC 的作用,但是利用 BFC 清除浮动时,应该给给父元素赋予像 overflow:hidden 这样不会产生负面效果的特征属性,而不是接着又抛出一个问题。