深入理解和应用Float属性
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元素。 3. 解决方案主要根据BFC的原理实现,因为BFC的渲染的是整块区域,也就会计算出宽、高。这也是传说中的清除浮动的方案 3.1 父容器创建BFC方法 3.1.1 创建BFC的方法 a) Float除了none以外的取值; b) Overflow除了visible以外的值; c) Display值为table-cell、table-caption、inline-block、flex、inline-flex等 d) Position值为absloute、fixed e) Fieldset元素 3.1.2 清除浮动 a) Float、overflow、display三种方式都可以清除浮动,但position、fieldset虽然创建了bfc但不可以清除浮动(也就是不能解决高度塌陷的问题)。主要原因为:position、fieldset都需要子元素来撑开父容器的高度,但子元素浮动后又不存在高度,所以失效。 b) Float、overflow、display示例代码: .wrap{
background: gray;
padding: 10px;
overflow: auto;
}
.left, .right{
background: red;
float: left;
width: 200px;
height: 100px;
}
.right{
background: yellow;
}
.footer{
background: pink;
}
<div class="wrap" >
<div class="left">left</div>
<div class="right">right</div>
</div>
<div class="footer">footer</div>
3.1.3 最后一个子元素clear:both 利用clear:both触发父容器重新计算高度的原理实现,示例代码如下: .wrap{
background: gray;
padding: 10px;
}
.left, .right{
background: red;
float: left;
width: 200px;
height: 100px;
}
.right{
background: yellow;
}
.footer{
background: pink;
}
.clear{
clear: both;
zoom: 1;
}
<div class="wrap" >
<div class="left">left</div>
<div class="right">right</div>
<div class="clear"></div>
</div>
<div class="footer">footer</div>
3.1.4 After添加最后一个子元素 (编辑:PHP编程网 - 金华站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

