清除浮动

1. 清除元素方式一

  • 给前面一个父元素设置高度

注意点:在企业开发中,能不写高度尽量不写高度,所以这个方式不太推荐使用

2. 清除元素方式二

  • 给后面的盒子添加clear属性
    clear取值:
    none:默认取值,按照浮动元素排序规则来排序
    left:不要找前面的左浮动
    right:不要找前面的右浮动
    both:不要找前面的左浮动和右浮动

注意点:当我们给某个元素添加clear属性的之后,这个元素的margin属性会失效

3. 清除元素方式三

  • 隔墙法

外墙法:给两个盒子中间添加块级元素并设置clear:both;
注意点:
外墙法可以让第二个盒子使用margin-top属性,但是不可以让第一个盒子使用margin-bottom属性.所以使用外墙法的时候,一般会给添加的块级元素设置高度代替margin-topmargin-bottom.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>浮动问题</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            background: red;
            /*height: 30px;*/
        }
        .box1 p{
            background: blue;
        }
        .box2{
            background: green;
            /*clear: left;*/
            margin-top: 10px;
        }
        .box2 p{
            background: yellow;
        }
        p{
            float: left;
        }
        .clearboth{
            clear: both;
        }
    </style>
</head>
<body>
    <div class="box1">
        <p>我是段落1</p>
        <p>我是段落1</p>
        <p>我是段落1</p>
    </div>
    <div class="clearboth"></div>
    <div class="box2">
        <p>我是段落2</p>
        <p>我是段落2</p>
        <p>我是段落2</p>
    </div>
</body>
</html>

内墙法

外墙法:给第一个盒子所有子元素最后添加块级元素并设置clear:both;
注意点:
内墙法可以让第二个盒子使用margin-top属性,同时也可以让第一个盒子使用margin-bottom属性,还可以给额外添加的块级元素设置高度。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>浮动问题</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            background: red;
            /*height: 30px;*/
            /*margin-bottom: 10px;*/
        }
        .box1 p{
            background: blue;
        }
        .box2{
            background: green;
            /*clear: left;*/
            /*margin-top: 10px;*/
        }
        .box2 p{
            background: yellow;
        }
        p{
            float: left;
        }
        .clearboth{
            clear: both;
            height: 30px;
        }
    </style>
</head>
<body>
    <div class="box1">
        <p>我是段落1</p>
        <p>我是段落1</p>
        <p>我是段落1</p>
        <div class="clearboth"></div>
    </div>
    
    <div class="box2">
        <p>我是段落2</p>
        <p>我是段落2</p>
        <p>我是段落2</p>
    </div>
</body>
</html>

4. 外墙法和内墙法的区别

  • 外墙法不能撑起第一个盒子的高度,内墙法可以。

5. 企业开发中不常用隔墙法来清除浮动

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 盒子的高度问题 1.标准流中盒子的高度可以被内容高度撑起来;2.浮动流中浮动的内容不能撑起盒子的高度; 为什么要清...
    壹点微尘阅读 3,034评论 0 0
  • 清除浮动 盒子高度问题 在标准流中内容的高度可以撑起盒子的高度 在浮动流中浮动元素内容的高不可以撑起盒子的高 清除...
    Jackson_yee_阅读 2,256评论 0 0
  • 浮动元素高度问题 在标准流中内容的高度可以撑起父元素的高度 在浮动流中浮动的元素是不可以撑起父元素的高度的 清除浮...
    MGd阅读 2,755评论 0 0
  • 第128课 浮动元素高度问题 1、在标准流中内容的高度可以撑起父元素的高度2、在浮动流中浮动的元素是不可以撑起父元...
    S大偉阅读 1,118评论 0 0
  • 今天这里下雨了。 从飞机上下来之后小雨濛濛,前两个小时还是艳阳高照,后两个小时就阴雨绵绵。 第一次来到这座城市只是...
    小怪兽打大boss阅读 2,563评论 3 0