<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>清除浮动带来的影响--让浮动元素使用标准流的特性</title>
</head>
<style>
.box{
width:400px;
background:#f00;
/* 方法三 给父元素设置overflow:auto; */
/* overflow:auto; */
}
.box div{
width:100px;
height:200px;
float:left;
}
.s1{
background:pink;
}
.s2{
background:#00f;
}
.s3{
background:#ff0;
}
.laowang{
width:350px;
height:200px;
background:#0f0;
}
/* 方法一、在浮动元素的父级元素下方写一个空div,然后设置样式为clear:both; */
/*.clear{
clear:both;
}*/
/* 方法二、使用伪元素清除浮动(推荐) */
.box:after{
content:"";
display:block;
clear:both;
}
</style>
<body>
<div class="box">
<div class="s1"></div>
<div class="s2"></div>
<div class="s3"></div>
</div>
<!-- <div class="clear"></div><!-- 清除浮动带来影响的空标签必须是一个块元素 -->
<div class="laowang"></div>
</body>
</html>
解释一下:
以上代码中,我们给父级元素div下的3个子级元素div设置了左浮动,此时,由于这三个子级div已经脱离了标准流,所以不占用标准流的空间。
如果不做处理,显示结果应该如下图所示:
在代码中我们使用了三种方式让浮动的元素占用标准流的空间。
1、在浮动元素的父级元素下方写一个空div,然后设置样式为clear:both;
2、使用伪元素清除浮动(推荐)
3、给父元素设置overflow:auto;
以上任意一种方法设置后的结果都如下图所示:
|