• 前端之float的几种清除浮动方式


    前端之float的几种清除浮动方式

    本节内容

    • 1.float清除方式1
    • 2.float清除方式2
    • 3.float清除方式3
    • 4.float清除方式4

    1.float清除方式1

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .content{
                background: red;
            }
            .left{
                float: left;
                height: 200px;
                 200px;
                background: black;
                border: 1px solid red;
            }
        </style>
    </head>
    <body>
        <div class="content">
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
        </div>
        <div style="clear: both">asdf</div>
    </body>
    </html>
    

      

    在父div的下面div中设置clear:both方式,content的div没有被撑起来,高度还是0,但是下面的asdf排在了最下面,缺点是外部的div高度为0,则外部div的颜色属性无法展示出来。

    2.float清除方式2

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .content{
                background: red;
            }
            .left{
                float: left;
                height: 200px;
                 200px;
                background: black;
                border: 1px solid red;
            }
        </style>
    </head>
    <body>
        <div class="content">
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div style="clear: both"></div>
        </div>
        <div>asdf</div>
    </body>
    </html>
    

      

    在所有浮动标签的最后一个标签后面加上一个空标签,里面的style设置为clear:both,这样就把父div撑起来了。但是如果想在父div中添加新的浮动标签将可能出现问题,因为append新元素进去之后,空标签可能就不在最后一个位置了。

    3.float清除方式3

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .content{
                background: red;
            }
            .left{
                float: left;
                height: 200px;
                 200px;
                background: black;
                border: 1px solid red;
            }
    
        </style>
    </head>
    <body>
        <div class="content" style="overflow: hidden">
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
        </div>
        <div>asdf</div>
    </body>
    </html>
    

      

    在父标签中设置style为overflow: hidden也能将父标签撑起来,hidden的含义是超出的部分要裁切隐藏,float的元素虽然不在普通流中,但是他是浮动在普通流之上的,可以把普通流元素+浮动元素想象成一个立方体。如果没有明确设定包含容器高度的情况下,它要计算内容的全部高度才能确定在什么位置hidden,这样浮动元素的高度就要被计算进去。这样包含容器就会被撑开,清除浮动。

    4.float清除方式4

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .content{
                background: red;
            }
            .left{
                float: left;
                height: 200px;
                 200px;
                background: black;
                border: 1px solid red;
            }
            .clearfix:after{
                content: ".";  /*设置内容,必须有内容,没有,则无法实现效果*/
                visibility: hidden;  /*将标签隐藏*/
                height:0;  /*设置标签的高度为0*/
                display: block;  /*设置标签为块级标签*/
                clear: both;  /*设置清除float浮动*/
            }
        </style>
    </head>
    <body>
        <div class="content clearfix">
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
            <div class="left"></div>
        </div>
        <div>asdf</div>
    </body>
    </html>
    

      

    第四种方式是在父标签上面建一个伪类,设置如上面那样,这样将能够撑起父div标签,并且动态在里面添加float标签将不会影响父标签的撑开。

    推荐使用这种方式

  • 相关阅读:
    JS 获取网页内容高度 和 网页可视高度 支持IE6789 Firefox Chrome
    JS 回车快捷键登陆页面 兼容火狐和IE
    如何设置span宽度
    实现三行布局页面自适应不同分辨率下的屏幕高度
    电脑个别网站打不开 POSTMAN可以请求通
    克隆DataTable
    Microsoft Visual SourceSafe 6.0 关联VS
    asp.net 网站设置访问超时时长
    sql server management studio(ssms)连接多个数据库注意事项
    ASP.NET Core 开发中间件(StaticFiles)使用
  • 原文地址:https://www.cnblogs.com/huxianglin/p/6077061.html
Copyright © 2020-2023  润新知