P42-前端基础-浮动塌陷最终解决方案

举报
brucexiaogui 发表于 2021/11/25 23:26:08 2021/11/25
【摘要】 P42-前端基础-浮动塌陷最终解决方案 1.概述 在前面两篇文章中介绍了设置浮动后带来的高度塌陷问题,这里我们介绍下有个更好的解决高度塌陷的方法。 2.浮动高度塌陷解决方案 2.1.ov...

P42-前端基础-浮动塌陷最终解决方案

1.概述

在前面两篇文章中介绍了设置浮动后带来的高度塌陷问题,这里我们介绍下有个更好的解决高度塌陷的方法。

2.浮动高度塌陷解决方案

2.1.overflow解决高度塌陷预览

  • div2设置了浮动,div1使用overflow解决了高度塌陷
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>高度塌陷最终解决方案</title>

    <style>
      .box1 {
        border: 10px red solid;

        overflow: hidden;
      }

      .box2 {
        width: 100px;
        height: 100px;
        background-color: #bbbbbb;
        float: left;
      }

    </style>
  </head>
  <body>
    <div class="box1">1
      <div class="box2">2</div>
      <div class="box3">3</div>
    </div>
  </body>
</html>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • voerflow解决高度塌陷效果
    在这里插入图片描述

2.2.clear解决高度塌陷

解决方法:
通过设置div3开启clear消除受div2浮动的位置影响,div3在原有的位置保持不变。利用这个特点将div1的高度塌陷撑开,解决div1受div2浮动影响产生高度塌陷。
原理:
div3虽然高度只有一个数字的高度,却能撑开div1的高度。原因是clear的原理,设置清除浮动以后,浏览器会自动为元素添加一个上外边距,以使其位置不受其他元素的影响
缺点:
需要单独添加一个块元素来解决高度塌陷问题

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>高度塌陷最终解决方案</title>

    <style>
      .box1 {
        border: 10px red solid;

        /* overflow: hidden; */
      }

      .box2 {
        width: 100px;
        height: 100px;
        background-color: #bbbbbb;
        float: left;
      }

      .box3 {
        clear: both;
      }
    </style>
  </head>
  <body>
    <div class="box1">1
      <div class="box2">2</div>
      <div class="box3">3</div>
    </div>
  </body>
</html>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • clear解决高度塌陷效果
    在这里插入图片描述

2.3.clear解决高度塌陷

通过clear解决高度塌陷收到启发,我们可以思考如何通过clear解决高度塌陷的同时不需要额外添加一个块元素那?
答案就是通过伪元素,::after在元素标签最后添加一个clear撑起div1的高度塌陷。

  • ::after在元素解决高度塌陷介绍
    在这里插入图片描述
  • ::after在元素解决高度塌陷效果预览
    在这里插入图片描述

3.浮动塌陷最终解决方案完整代码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>高度塌陷最终解决方案</title>

    <style>
      /* 1.overflow解决高度塌陷 */
      .box1 {
        border: 10px red solid;

        /* overflow: hidden; */

      }



      .box2 {
        width: 100px;
        height: 100px;
        background-color: #bbbbbb;
        float: left;
      }

      /* 2.clear解决高度塌陷 */
      /* .box3 {
        clear: both;
      } */

      /* 3.终极解决高度塌陷 */
      .box1::after {
        content: '';
        clear: both;
        /* ::after是一个行内元素,不会独占一行,因此无法撑开高度。需要将他设置为块元素独占一行 */
        display: block;
      }
    </style>
  </head>
  <body>
    <div class="box1">1
      <div class="box2">2</div>
      <!-- <div class="box3">3</div> -->
    </div>
  </body>
</html>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/112909071

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。