如何清除浮动

浮动的原理,是元素脱标不占位,类似于水中的物体浮动到表面,那么何时在网页布局中何时需要清除浮动呢?

时机(原因):

父元素(这里指的的div盒子)没有指定高度,并且子元素全部都设置了浮动,造成了脱标,此时父元素没有高度成为了一个线,父元素后边的元素会顶到元素后,给我们的主观感受就是在浮动的子元素下边,这个时候就是会造成布局混乱,此时我们需要清除浮动。

下面看一个例子:

 

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<style type="text/css" >
		* {
			margin: 0;
			padding: 0;
		}

		.content {
			width: 200px;
			height: 200px;
			background-color: pink;
		}

		.fl_content {
			float: left;
			width: 200px;
			height: 100px;
			background-color: red;
		}

		.footer {
			width: 220px;
			height: 150px;
			background-color: yellowgreen;
		}
	</style>
</head>
<body>

	<div class="content">
		<div class="fl_content"></div>
	</div>

	<div class="footer"></div>
	
</body>
</html>

此时是父元素也就是父盒子有高度,此时子元素设置了浮动,父元素后的footer元素的位置是没问题的,但是如果此时我们将父元素的高度去掉,再看下效果:

改动代码:

.content {
			width: 200px;
			/* height: 200px; */
			background-color: pink;
		}

此时发现,父盒子中的子盒子还在原来的位置,但是父盒子后的footer盒子跑到了上边,这个原因就是父元素没有高度,子元素浮动了,脱标不占位置,导致父元素此时只是看不见一条线。

下面来说解决的办法:

有以下几种方法:

1. 添加标签法 (不推荐)

该方法是在最后一个浮动的子盒子后面添加一个标签,给其设置clear:both属性


	<div class="content">
		<div class="fl_content"></div>
		<div class="clear"></div>
	</div>
.clear {
			clear: both;
		}

此时浏览器查看效果:

不推荐理由:添加无意义标签,语义性不强。

2. 父元素添加overflo:hidden (不推荐)

.content {
			width: 200px;
			/* height: 200px; */
			background-color: pink;
			overflow: hidden;
		}

不推荐理由:如果盒子中的元素有溢出,溢出的部分将无法显示

3. 伪元素清除浮动

.clearfix:after{
	        content: "";
	        display: block;
	        height: 0;
	        clear:both;
	        visibility: hidden;
    	}
	    /* 兼容IE */
	    .clearfix{
	        zoom: 1;
		}
<div class="content clearfix">
		<div class="fl_content"></div>
		<!-- <div class="clear"></div> -->
	</div>

这种方法推荐使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值