css清除浮动的方法几种方法

css清除浮动的方法

初始浮动图
 

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>用省略号</title>
	<style type="text/css"> 
		.div1{background:#688dbd;
		border:1px solid red;} 
		.div2{background:#800080;
		border:1px solid red;
		height:100px;
		margin-top:10px} 
		.left{float:left;
		width:20%;height:200px;
		background:#DDD} 
		.right{float:right;
		width:30%;height:80px;
		background:#DDD} 
		</style> 
		<body>
		<div class="div1"> 
		<div class="left">Left</div> 
		<div class="right">Right</div> 
		</div> 
		<div class="div2"> 
		div2 
		</div>
</body>
</html

1.父级div定义 height

解决代码.:

.div1{background:#688dbd;border:1px solid red;/*解决代码*/height:200px;} 

效果:

2,结尾处加空div标签 clear:both

解决代码:

<style type="text/css"> 
.div1{background:#000080;border:1px solid red} 
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
/*清除浮动代码*/ 
.clearfloat{clear:both} 
</style> 
<div class="div1"> 
<div class="left">Left</div> 
<div class="right">Right</div> 
<div class="clearfloat"></div> 
</div> 
<div class="div2"> 
div2 
</div> 

建议:推荐使用,建议定义公共类,以减少CSS代码。
优点:浏览器支持好、不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等)

3.父级div定义 伪类:after

解决代码:

<style type="text/css"> 
.div1{background:#000080;border:1px solid red;} 
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
/*清除浮动代码*/ 
.clearfloat:after{
display:block ;
clear:both;
content:"";
visibility:hidden;
height:0} 
</style> 
<div class="div1 clearfloat"> 
<div class="left">Left</div> 
<div class="right">Right</div> 
</div> 
<div class="div2"> 
div2 
</div>

4.父级div定义 overflow:hidden

解决代码:

<style type="text/css"> 
.div1{background:#000080;border:1px solid red;
/*解决代码*/width:98%;overflow:hidden} 
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
</style> 
<div class="div1"> 
<div class="left">Left</div> 
<div class="right">Right</div> 
</div> 
<div class="div2"> 
div2 
</div> 

5.父级div定义 overflow:auto

<style type="text/css"> 
.div1{background:#000080;border:1px solid red;
/*解决代码*/width:98%;overflow:auto} 
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
</style> 
<div class="div1"> 
<div class="left">Left</div> 
<div class="right">Right</div> 
</div> 
<div class="div2"> 
div2 
</div> 

6.父级div 也一起浮动

解决代码:

<style type="text/css"> 
.div1{background:#000080;border:1px solid red;
/*解决代码*/width:98%;margin-bottom:10px;float:left} 
.div2{background:#800080;border:1px solid red;height:100px;width:98%;/*解决代码*/clear:both} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
</style> 
<div class="div1"> 
<div class="left">Left</div> 
<div class="right">Right</div> 
</div> 
<div class="div2"> 
div2 
</div> 

7.结尾处加 br标签 clear:both

解决代码:

<style type="text/css"> 
.div1{background:#000080;border:1px solid red;margin-bottom:10px;zoom:1} 
.div2{background:#800080;border:1px solid red;height:100px} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
.clearfloat{clear:both} 
</style> 
<div class="div1"> 
<div class="left">Left</div> 
<div class="right">Right</div> 
<br class="clearfloat" /> 
</div> 
<div class="div2"> 
div2 
</div> 

猜你喜欢

转载自blog.csdn.net/weixin_40762926/article/details/108883937