<div class="right">right</div>
</div>

2.宽、高变成自适应子元素,但宽、高的设置有效
.wrap{
background:red;
padding:10px;
float:left;
}
.left{
width:100px;
background:gray;
}
.right:{
width:200px;
background:yellow;
}
<div class="wrap">
<div class="left">left</div>
<div class="right">right</div>
</div>
2. 解决高度塌陷的问题
首先我们需要了解BFC和IFC这两人个基本的概念,因为他与浏览器的渲染有着密切的关系。
1.BFC(块级格式化上下文)
他是一个独立渲染的区域,规定区域内部如何布局,且与外部毫不相干,主要规则如下:
1.1 内部的box会垂直方向,一个接一个地放置
1.2 Box垂直方向的距离由margin决定,属于同一个BFC的两个相邻box的Margin会发生重叠
1.3 BFC区域不会与float重叠
.head{
background:pink;
margin: 20px 0px;
height:100px;
}
.wrap{
background:red;
padding:10px;
margin:20px 0px;
overflow:hidden;
}
.left{
width:100px;
background:gray;
margin:10px 0px;
}
.right:{
width:200px;
background:yellow;
margin:20px 0px;
}
<div class="head">head</div>
<div class="wrap">
<div class="left">left</div>
<div class="right">right</div>
</div>
.head与.wrap两个box之间上下各设置有20px的外边距,但发生了重叠;
.head与.left两个之间,.head有20px的外边距,.left有10px的外边距,没有发生重叠,因为.wrap使其创建了BFC(overflow:hidden)。
1.4 每个box的margin 左边,与包含border box的左边相接触(右边一样),浮动也是如此
2. IFC(行级格式化上下文)
框从包含块的顶部开始,一个接一个水平放置。水平方向上的外边距、边框、内边距所占空间都放在一起(display为inline、inline-block;元素本身具有inline特性的元素都具体以下特征)。规则如下:
2.1 不能指定宽高
2.2 Margin、Padding、border垂直方向的无效
2.3 行框的左边紧贴包含块的左边,而行框的右边紧贴其包含框的右边,而浮动块可以插入在包含块边缘与行框之间。
2.4 行内框高度由line-height决定。
此节例子可以参考display章节的inline元素。










