zoukankan      html  css  js  c++  java
  • 清除浮动

    首先,我们创建两个盒子,添加浮动做到左边一个右边一个,然后在top之后增加一个bottom块

    <head>
        <style>
          .box1{
               float: left;
                100px;
               height: 100px;
               background-color: tomato;
           }
           .box2{
               float: right;
                100px;
               height: 100px;
               background-color: yellow;
           }
           .bottom{
               height: 50px;
               background-color: springgreen;
           }
        </style>
    </head>
    <body>
        <div class="top">
            <div class="box1">11111</div>
            <div class="box2">22222</div>
        </div> 
    <div class="bottom"></div>
    </body>

    效果图

     

     可以看到bottom到了顶部,而不是top的下面,此时的top高度为0;这是因为有浮动的关系,所以需要清除浮动

    方法1:设置top的高度和内层元素高度一致

    .top{
                height: 100px;
                background-color: thistle;
            }

    方法2:overflow: hidden;父级的高度就随子级容器及子级内容的高度而自适应

    .top{
                overflow: hidden;
                background-color: thistle;
            }

    效果图

    方法3:在top里在添加最后一个块级子元素,设置clear: both;两边都不允许有浮动对象

    <head>
        <style>
          .box1{
               float: left;
                100px;
               height: 100px;
               background-color: tomato;
           }
           .box2{
               float: right;
                100px;
               height: 100px;
               background-color: yellow;
           }
           .box3{
                clear: both;
            }
           .bottom{
               height: 50px;
               background-color: springgreen;
           }
        </style>
    </head>
    <body>
        <div class="top">
            <div class="box1 box">11111</div>
            <div class="box2 box">22222</div>
            <div class="box3"></div>
        </div>
        <div class="bottom"></div>
    </body>

    方法3延伸:运用伪元素,用top::after代替box3,zoom: 1是针对旧版本的

    .top::after{
                content: "";
                display: block;
                clear: both;
                zoom: 1;
            }

    整合一下上面的代码,可以单独提出一个用于清除浮动的类clearfix

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            .clearfix::after {
                content: '';
                display: block;
                clear: both;
                zoom: 1;
            }
    
            .box1 {
                float: left;
                 100px;
                height: 100px;
                background-color: tomato;
            }
    
            .box2 {
                float: right;
                 100px;
                height: 100px;
                background-color: yellow;
            }
            .bottom{
               height: 50px;
               background-color: springgreen;
           }
    
        </style>
    </head>
    
    <body>
        <div class="top clearfix" >
            <div class="box1">11111</div>
            <div class="box2">22222</div>
        </div>
        <div class="bottom"></div>
    </body>
    
    </html>

    效果图:

  • 相关阅读:
    python基础之列表深浅复制的问题
    跟着阿里学JavaDay07——Java基础语法(五)
    Java培训Day03——制作疫情地图(三)
    Java培训Day02——制作疫情地图(二)
    Java培训Day01——制作疫情地图(一)
    跟着阿里学JavaDay06——Java基础语法(四)
    跟着阿里学JavaDay05——Java基础语法(三)
    跟着阿里学JavaDay04——Java基础语法(二)
    跟着阿里学JavaDay03——Java基础语法(一)
    跟着阿里学JavaDay02——Java编程起步
  • 原文地址:https://www.cnblogs.com/sycamore0802/p/12883356.html
Copyright © 2011-2022 走看看