解决高度塌陷的四种方法

额外标签法

额外标签法也称为隔墙法,会在浮动元素末尾添加一个空的标签,原理是使用一个空盒子让浮动形成闭合浮动 ,只让浮动在父盒子内部影响,不影响父盒子外面的其他盒子。

代码如下(示例):

<style>

    .box {

        border: 1px solid blue;

    }


    .box1 {

        float: left;

        width: 100px;

        height: 100px;

        background-color: aqua;

    }

</style>

<body>

    <div class="box">

        <div class="box1"></div>

        <div style="clear: both"></div>

    </div>

</body>

使用overflow

可以给父级添加overflow属性,将其属性值设置为hidden、auto或scroll,overflow是指溢出的部分,overflow直接使用将溢出部分删除,就可以让浮动盒子留在盒子里。

代码如下(示例):

<style>

    .box {

        border: 1px solid blue;

        overflow: hidden;

    }


    .box1 {

        float: left;

        width: 100px;

        height: 100px;

        background-color: aqua;

    }

</style>

<body>

    <div class="box">

        <div class="box1"></div>

    </div>

</body>

添加:after伪类元素

简单说就是第一种方法的升级版,可以直接在HTML里面的盒子里放入clearfix就可以直接实现清除浮动的效果。

代码如下:

<style>

    .box {

        border: 1px solid blue;

        overflow: hidden;

    }


    .box1 {

        float: left;

        width: 100px;

        height: 100px;

        background-color: aqua;

    }


    .clearfix:after {

        content: "";

        display: block;

        height: 0;

        clear: both;

        visibility: hidden;

    }


    .clearfix {

        /* IE6、7 专有 */

        *zoom: 1;

    }

</style>

<body>

    <div class="box">

        <div class="box1 clearfix"></div>

    </div>

</body>

给父级添加双伪元素

在CSS的style中写下双伪元素的伪类选择器之后,在父级的父子class内写入clearfix就可以实现清除浮动的效果,这个效果在各种大型的网站中使用较多

<style>

    .box {

        border: 1px solid blue;

        overflow: hidden;

    }


    .box1 {

        float: left;

        width: 100px;

        height: 100px;

        background-color: aqua;

    }


    .clearfix:before,

    .clearfix:after {

        content: "";

        display: table;

    }


    .clearfix:after {

        clear: both;

    }


    .clearfix {

        *zoom: 1;

    }

</style>

<body>

    <div class="box clearfix">

        <div class="box1"></div>

    </div>

</body>

总结

这里只是介绍了集中清除浮动的方法,清除浮动的本质是清除浮动元素造成的影响。如果父盒子本身有高度,则不需要清除浮动。四种清除浮动的方法中,下面三种使用更多,可以根据自己的需求使用。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容