分明浮动四种办法
案例解说
代码
.container {
width: 500px;
background-color: black;
}
.left {
width: 200px;
height: 300px;
background-color: red;
float: left;
}
.right {
width: 200px;
height: 200px;
background-color: green;
float: left;
}
.footer {
width: 600px;
height: 50px;
background-color: blue;
}
<div class="container"> <!-- black -->
<div class="left">大毛</div> <!-- red -->
<div class="right">二毛</div> <!-- green -->
</div>
<div class="footer">三毛</div> <!-- blue -->
运行后果
能够看见,left、right脱标不占据空间,footer元素与之重叠,footer内容’三毛’被排斥,可见浮动元素不占据空间却占据内容。
一、额定标签法(W3C举荐)
在开端的浮动元素增加一个带有clear:both属性的块级标签。
.clear{
clear: both;
}
<div class="container"> <!-- black -->
<div class="left">大毛</div> <!-- red -->
<div class="right">二毛</div> <!-- green -->
<div class="clear"></div>
</div>
<div class="footer">三毛</div> <!-- blue -->
运行后果
二、父级overflow:hidden
给浮动元素的父盒子增加一个overflow:hidden。
.container {
overflow: hidden;
width: 500px;
background-color: black;
}
运行后果
三、父级after伪元素
给父盒子增加一个指定属性的伪元素,如下
.clearfix:after {
visibility: hidden;
clear: both;
display: block;
content: "";
height: 0
}
<!-- IE6、IE7独有 -->
.clearfix{
*zoom: 1;
}
<div class="container clearfix">
运行后果
四、父级双伪类元素
给父盒子增加如下属性
.clearfix:after, .clearfix::before{
content: "";
display: table;
}
.clearfix:after{
clear: both;
}
.clearfix{
*zoom: 1;
}
<div class="container clearfix">
革除浮动实质
察看四种办法运行后果可知,革除浮动实质就是给父盒子增加适应于子盒子的高度,父级盒子有高度了就不会影响前面的规范流盒子。
发表回复