分明浮动四种办法
案例解说
代码
.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">
革除浮动实质
察看四种办法运行后果可知,革除浮动实质就是给父盒子增加适应于子盒子的高度,父级盒子有高度了就不会影响前面的规范流盒子。