清除浮动的三种方法

当父盒子没有定义高度,嵌套的盒子浮动之后,下边的元素发生位置错误
首先我们理解一下清除浮动的意思,清除浮动是清除浮动带来的不利影响,并不是清除浮动的效果,盒子还是正常浮动,
清除浮动的方法
clear:left;
clear:right;
clear:both;

1、额外标签法清除浮动

先来一个html文件

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	.header,.main,.footer{
		width: 500px;

	}
	.header{
		height: 100px;
		background: #000;
	}
	.main{
		
		background: #eee;
		margin: 10px 0;
	}
	.content{
		width: 300px;
		height: 300px;
		background: orange;
		float: left;
	}
	.sidebar{
		width: 190px;
		height: 300px;
		background: green;
		float: right;
	}
	.footer{
		height: 100px;
		background: #000;
	}
	</style>
</head>
<body>
	<div class="header"></div>
	<div class="main">
		<div class="content"></di>
		<div class="sidebar"></div>
		<!-- 额外标签法 -->
		<div style="clear:both"></div> 
	</div>
	<div class="footer"></div>
</body>
</html>

额外标签法就是在最后一个浮动元素后添加标签,但是在使用过程中不是很好用,当元素过多的时候就需要添加很多额外标签,所以一般不用

2、overflow清除浮动

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	.header,.main,.footer{
		width: 500px;

	}
	.header{
		height: 100px;
		background: #000;
	}
	.main{
		background: #eee;
		margin: 10px 0;
		overflow:hidden;
		/*给父级元素设置overflow*/
	}
	.content{
		width: 300px;
		height: 300px;
		background: orange;
		float: left;
	}
	.sidebar{
		width: 190px;
		height: 300px;
		background: green;
		float: right;
	}
	.footer{
		height: 100px;
		background: #000;
	}
	</style>
</head>
<body>
	<div class="header"></div>
	<div class="main">
		<div class="content"></div>
		<div class="sidebar"></div>
	</div>
	<div class="footer"></div>
</body>
</html>

overflow的方法就是给父元素的overflow的值设置成hidden,但是有一个弊端,当有内容出了盒子,出了盒子的内容就会被裁掉,所以不能用

3、伪元素清除浮动

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	.header,.main,.footer{
		width: 500px;
	}
	.header{
		height: 100px;
		background: #000;
	}
	.main{
		
		background: #eee;
		margin: 10px 0;
	}
	.content{
		width: 300px;
		height: 300px;
		background: orange;
		float: left;
	}
	.sidebar{
		width: 190px;
		height: 300px;
		background: green;
		float: right;
	}
	.footer{
		height: 100px;
		background: #000;
	}
	/*伪元素清除浮动 推荐使用*/
	.clearfix:after{
		content: ".";
		display: block;
		height: 0;
		line-height: 0;
		visibility: hidden;
		clear: both;
	}
	 /*兼容ie*/ 
	.clearfix{
		zoom:1;
	}
	</style>
</head>
<body>
	<div class="header"></div>
	<div class="main clearfix">
	<!-- 给父元素设置一个伪类元素 -->
		<div class="content"></div>
		<div class="sidebar"></div>
	</div>
	<div class="footer"></div>
</body>
</html>

伪元素清除浮动的方法是比较常用的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值