一、为什么消除浮动
在很多情况下,我们不知道父盒子中需要几个子盒子不方便给父盒子高度,因此我们通过子盒子来撑开父盒子的高度。但是当子盒子浮动时,父盒子的高度将变成0,这将影响下面的标准流盒子。因此我们需要消除浮动。
<style>
.father{
width: 500px;
background-color: seagreen;
}
.one{
float: left;
width: 100px;
height: 200px;
background-color: purple;
}
.tow{
float: left;
width: 100px;
height: 200px;
background-color: red;
}
.uncle{
width: 250px;
height: 250px;
background-color: wheat;
}
</style>
</head>
<body>
<div class="father">
<div class="one"></div>
<div class="tow"></div>
</div>
<div class="uncle"></div>
</body>
二、如何消除浮动
1.额外标签法
在浮动元素末尾添加一个空的标签(必须是块级元素)或其他标签。
2.给父级元素添加overflow
给父级元素添加overflow属性,将其属性值设置为hidden,auto或scroll
.father{
overflow: hidden;
width: 500px;
background-color: seagreen;
}
3.after伪元素法
.clearfix :after{
content: "";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix{
/*IE6、7专用*/
*zoom: 1;
}
4.双伪元素法
.clearfix :before,
.clearfix :after{
content: "";
display: table;
}
.clearfix :after {
clear: both;
}
.clearfix{
*zoom: 1;
}