BFC详解

a,形成BFC的条件:


     1,浮动元素float
     2,加了overflow:hidden/scoll/auto属性
    3,加了定位属性(仅限固定定位fixed和绝对定位absolute,也就是可以脱标的定位)
    4,display属性(仅限inline-block,table-cell,table-caption)


b,BFC的特性:


   1,内部的盒子会在垂直方向1个接1个的摆放,和标准流一样

   2,垂直方向的两个盒子margin值由最大的那个margin值决定

     (比如垂直方向的两个盒子,box1的margin-bottom:10px,而box2的margin-top:20px,它们之间的上下间距实际是20,不是叠加后的30。解决方法:把box1放在1个单独的盒子内)


  3,BFC区域不和浮动元素重叠
    (比如box1设置了浮动属性float:left,box2设置了overflow:hidden,这时两个盒子是不会重叠的,代码见下面)


  4,BFC计算高度时,float元素也会参与计算

    (比如父盒子没有设置高度,它的子盒子有高度但是设置了float浮动属性,这个时候父盒子不会被子盒子撑开,也就是父盒子依旧没有高度,如果希望父盒子被子盒子撑开,只需让父盒子变成BFC,方法就是给父盒子设置overflow:hidden属性)

  5,BFC是一个独立的容器,里面的子元素不好影响到外面的元素

BFC区域不和浮动元素重叠代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>BFC</title>
</head>
<style>
    * {
        box-sizing: border-box;
    }

    body {
        max-width: 1200px;
        min-width: 320px;
        margin: 0 auto;

    }

    /* BFC Start */
    .box1 {
        width: 200px;
        height: 100px;
        background-color: pink;
        float: left;
    }

    .box2 {
        width: 400px;
        height: 300px;
        background-color: skyblue;
        overflow: hidden;
    }

    /* BFC End */
</style>

<body>
    <!-- BFC start -->
    <div class="box1">box1</div>
    <div class="box2">box2</div>
    <!-- BFC end -->
</body>

</html>实际效果:

BFC详解

上一篇:莫烦Python_关系拟合(回归)


下一篇:什么叫高度塌陷-且如何清除浮动