流与浮动
by miSunLaughing
HTML
<!-- 包裹性 -->
<div class="contain">
<div class="float">
<img src="https://fallbacks.carbonads.com/nosvn/fallbacks/731050e6bd3fc6979e1cb1a972294dae.png">
测试文字测试文字测试文字测试文字测试文字
</div>
</div>
<!-- 块状性, 你可以通过js获取该元素的style的display属性去验证 -->
<span class="float" id="toBlock">块状形</span>
<!-- 没有margin合并 你会发现下面第一个.contain元素和上面的.contain元素外间距为20px,而下面第一个和第二个.contain元素的外间距为30px-->
<div class="margin">
<div class="box">margin-top合并</div>
<div class="box">margin-top合并</div>
<div class="box float">margin-top没有合并</div>
</div>
<!-- 高度塌陷 -->
<div>
<div class="box" class="float">高度坍塌</div>
</div>
<!-- clear -->
<!-- 页面生成的元素,可以用浏览器的元素审查去查看高度 -->
<div class="clearb">
<div class="contain" class="float">解决高度坍塌</div>
</div>
<!-- margin-top失效 -->
<div class="margin">
<div class="box w50 float"></div>
<div class="box w50 float"></div>
<div class="box w50 clearl mt"></div>
</div>
<!-- 彩蛋 -->
<div class="egg">
<div class="left-area">北京</div>
<div class="right-area">测试文字</div>
</div>
<div class="egg">
<div class="left-area">呼和浩特</div>
<div class="right-area">测试文字</div>
</div>
CSS
.contain {
width: 200px;
height: 200px;
border: 1px dashed #999;
}
.contain img {
width: 150px;
}
.float {
float: left;
}
.margin {
margin-top:50px;
height: 200px;
}
.box {
height:20px;
margin: 10px 0 20px;
border: 1px dashed #999;
}
.w50 {
width: 50px
}
.mt {
margin-top: -999px;
}
.clearl {
clear: left;
}
.clearr {
clear: right;
}
.clearb::after {
height: 0;
content: '';
display: block;
clear: both;
}
/* 彩蛋 */
.egg {
height: 30px;
line-height: 30px;
margin: 20px;
}
.left-area {
background-color: #999;
height: 30px;
border-radius:5px;
float: left;
margin-right: 10px;
}
.right-area {
background-color: #999;
height: 30px;
border-radius:5px;
overflow: hidden;
}