浮动的布局比标准流高了半个层级,因此它并不占标准流下,如果子元素浮动了,父元素又没有设置高度,此时子元素无法撑开盒子,就如同下面这种情况
没加浮动之前
给son加上浮动之后
可以看到,父元素pink的颜色消失了,而它的兄弟元素也因为它的消失,占了它原本的位置
怎样清除浮动呢?
第一种方法
直接给父元素加上高度。这种方法不适用与不确定高度的元素,因为之后的数据很多来自数据库,无法判断高度
第二种方法:额外标签法
1.给父元素的内部加入一个块级元素
2.该块级元素添加一个clear:both的属性
第三种方法:单伪标签法
由伪元素代替额外标签,因为额外元素会让html结构变得复杂,我们给父元素加一个类名
这种情况也可以清除浮动,在之后项目开发的时候,可以写这个方法或者下面的要讲的方法,有需要清除浮动的可以加clearfix类名
第四种方法:双伪标签法
这种方法不仅可以清除浮动还可以防止塌陷,塌陷的条件是父子元素都为块级元素,且嵌套
第五种方法:给父元素设置overflow:hidden