css解决高度坍塌问题

解决子元素浮动造成父元素高度塌陷的问题的几种方法
一、子级方法

1 在子元素的最后添加一个高度为0的子元素,并且让它清除浮动
.clear{ clear: both; margin: 0; padding: 0;}

2.设置父元素的高度
#father {height: 600px; border:1px #000 solid; }
此种方式简单,但元素高度固定会降低扩展性

3.浮动元素后面加空div
.clear{ clear: both; margin: 0; padding: 0;}

浮动的盒子

</div素的高度

4.父级添加overflow属性
父级添加overflow属性,简单,但是有下拉列表框的场景不能用
常见值:①visible:默认值,内容不会被修剪,会呈现在盒子之外
②hidden:内容会被修剪,并且其余内容是不可见的
③scroll:内容会被修剪,但是浏览器会显示滚动条以便查看其余内容
④auto:如果内容被修剪,则浏览器会显示滚动条以便查看其余内容

	#father {overflow: hidden;border:1px #000 solid; }
	     .clear:after{
 	         content: '';          /*在clear类后面添加内容为空*/
   	        display: block;      /*把添加的内容转化为块元素*/
  	        clear: both;         /*清除这个元素两边的浮动*/
	 }

父级添加伪类after,写法稍复杂,但没有副作用,推荐使用
在IE6、IE7下还需要加一句代码才能清除浮动:
注:在IE6、IE7下还需要加一句代码才能清除浮动:

	.clear{zoom:1;}/*兼容IE6、IE7浏览器*/
	 #container:after {
			content: ".";/*添加空内容*/
			display: block;;/*把添加的内容转换为块级元素*/
			height: 0;
			clear: both;/*清除这个元素两侧的浮动*/
			visibility: hidden;
	}

在使用float元素的父元素添加overflow:hidden; 创建父级 BFC(只要给外面大容器加上overflow:auto的属性,可以解决IE7和火狐浏览器下的清除浮动问题,但是IE6下不生效,所以我们还需要使用zoom这个IE的私有属性来达到彻底清楚浮动的兼容效果。)

	#container {
		border: 1px solid green;
		overflow: hidden;
		zoom: 1;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值