CSS——清除浮动的六种解决方案

从零学习前端开发 2018-02-28

内容的高度撑起父元素容器的高度,效果图如下
CSS——清除浮动的六种解决方案

HTML和CSS代码如下

CSS——清除浮动的六种解决方案

CSS——清除浮动的六种解决方案

给p标签加上浮动以后,p{float:left;},此时DIV塌陷,两段内容同行显示,效果如下:
CSS——清除浮动的六种解决方案


解决方案一:给前面一个父元素设置高度

!企业开发中,能不写高度就不写,所以这种方式用得很少



解决方案二:给后面的盒子添加clear属性;

!给某个元素添加clear属性后,这个元素的margin属性 就会失效

CSS代码和效果图如下:

CSS——清除浮动的六种解决方案


CSS——清除浮动的六种解决方案


解决方案三:外墙法,在两个盒子中间添加一个额外的块级元素,并给这个添加的元素设置clear:both属性。

!可以让下面的盒子使用margin-top属性,但是上面的盒子margin-bottom属性失效;实际使用时可以直接设置添加的块级元素的高度,从而让上下盒子产生边距。

HTML代码如下:


CSS——清除浮动的六种解决方案

CSS——清除浮动的六种解决方案



效果如下:CSS——清除浮动的六种解决方案



决方案四:内墙法,在第一个盒子所有子元素最后添加一个额外的块级元素,给这个额外的块级元素设置clear:both属性。

!可以让第一个盒子使用margin-bottom属性,也可以让第二个盒子使用margin-top属性。

HTML代码如下:
CSS——清除浮动的六种解决方案


效果如图:
CSS——清除浮动的六种解决方案

此时第一个盒子的高度被撑起,显示出了背景色。但由于添加了额外的元素,因此在开发中不推荐使用这种方式。



解决方案五:利用伪元素添加块级元素清除浮动

代码如下:
CSS——清除浮动的六种解决方案


效果如下:
CSS——清除浮动的六种解决方案

解决方案六: overflow:hidden; 1.可以将超出标签范围的内容裁剪掉
2.清除浮动
3.两个嵌套的盒子,可以让里面的盒子在设置margin-top时,外边的盒子不被顶下来。


代码如下:
CSS——清除浮动的六种解决方案


同时,上面盒子的margin-bottom和下边盒子的margin-top都可以正常使用。

效果如图:
CSS——清除浮动的六种解决方案

相关推荐

aSuncat / 0评论 2020-08-18