内容的高度撑起父元素容器的高度,效果图如下

HTML和CSS代码如下


给p标签加上浮动以后,p{float:left;},此时DIV塌陷,两段内容同行显示,效果如下:

解决方案一:给前面一个父元素设置高度 !企业开发中,能不写高度就不写,所以这种方式用得很少
解决方案二:给后面的盒子添加clear属性; !给某个元素添加clear属性后,这个元素的margin属性 就会失效
CSS代码和效果图如下:


解决方案三:外墙法,在两个盒子中间添加一个额外的块级元素,并给这个添加的元素设置clear:both属性。
!可以让下面的盒子使用margin-top属性,但是上面的盒子margin-bottom属性失效;实际使用时可以直接设置添加的块级元素的高度,从而让上下盒子产生边距。
HTML代码如下:


效果如下:
解决方案四:内墙法,在第一个盒子所有子元素最后添加一个额外的块级元素,给这个额外的块级元素设置clear:both属性。 !可以让第一个盒子使用margin-bottom属性,也可以让第二个盒子使用margin-top属性。 HTML代码如下:

效果如图: 
此时第一个盒子的高度被撑起,显示出了背景色。但由于添加了额外的元素,因此在开发中不推荐使用这种方式。
解决方案五:利用伪元素添加块级元素清除浮动 代码如下: 
效果如下:
 解决方案六: overflow:hidden; 1.可以将超出标签范围的内容裁剪掉 2.清除浮动 3.两个嵌套的盒子,可以让里面的盒子在设置margin-top时,外边的盒子不被顶下来。
代码如下:

同时,上面盒子的margin-bottom和下边盒子的margin-top都可以正常使用。
效果如图:
|