CSS - 正确解决 float 高度坍塌的问题

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

<head>
  <meta charset="utf-8">
  <title>正确解决高度塌陷</title>
  <style media="screen">
    .box {
      border: 1px solid;
    }

    .float {
      width: 100px;
      height: 100px;
      background: skyblue;
      float: left;
    }

    .clearfix:after {
      content:'';
      clear: both;
      display:block;
    }
  </style>
</head>

<body>
  <div class="box clearfix">
    <div class="float">
    </div>
  </div>
</body>

</html>

 

补充:

一, float 使父元素高度坍塌的原因 :

  子元素使用 float 后,使其脱离文档流 。 使父元素检测不到其尺寸。

二,5种解决方案 :

1,为父元素设置高度 , 缺陷是 :不灵活

2,为父元素设置 float ,   缺陷是 :使父元素也脱离,没有真正解决

3,为父元素设置 overflow:hidden , 缺陷是 :会隐藏相关的元素

4,子元素后面添加 一个 clear:both 的 兄弟元素 , 缺陷是 : 使 html 添加了一个多余的结构

5,为父元素添加一个 content:"";clear:both;display:block 的伪类 。 ( 可取 )

posted @ 2020-07-19 12:03  武卡卡  阅读(991)  评论(0编辑  收藏  举报