美文网首页让前端飞
前端清除浮动常用的四种方法

前端清除浮动常用的四种方法

作者: 虹猫日志 | 来源:发表于2022-06-07 17:15 被阅读0次

前言

清除浮动主要是为了解决,当父元素未设置高度,子元素使用了浮动(浮动元素会脱离标准流,不占位),引起的内部高度为0,从而影响后续父同级标准流盒子布局的问题。

演示代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>清除浮动</title>
</head>
<style>
    .head {
        width: 600px;
        margin: 0 auto;
        background-color: #FFCCCC;
    }

    .left {
        float: left;
        height: 300px;
        width: 200px;
        background-color: #FFFF99;
    }

    .right {
        float: right;
        height: 300px;
        width: 300px;
        background-color: #CCCCFF;
    }

    .box {
        height: 200px;
        width: 800px;
        margin: 0 auto;
        background-color: #CCCCCC;
    }
</style>
<body>
<div class="head">
    <div class="left"></div>
    <div class="right"></div>
</div>
<div class="box"></div>
</body>
</html>
效果图

方法一:额外标签法

  1. 在父元素内容的最后添加一个块级元素
  2. 给添加的块级元素设置clear:both;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>清除浮动</title>
</head>
<style>
    .head {
        width: 600px;
        margin: 0 auto;
        background-color: #FFCCCC;
    }

    .left {
        float: left;
        height: 300px;
        width: 200px;
        background-color: #FFFF99;
    }

    .right {
        float: right;
        height: 300px;
        width: 300px;
        background-color: #CCCCFF;
    }

    .box {
        height: 200px;
        width: 800px;
        margin: 0 auto;
        background-color: #CCCCCC;
    }

    .clearfix{
        clear: both;
    }
</style>
<body>
<div class="head">
    <div class="left"></div>
    <div class="right"></div>
    <!--清除新标签-->
    <div class="clearfix"></div>
</div>
<div class="box"></div>
</body>
</html>

方法二:单伪元素清除法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>清除浮动</title>
</head>
<style>
    .head {
        width: 600px;
        margin: 0 auto;
        background-color: #FFCCCC;
    }

    .left {
        float: left;
        height: 300px;
        width: 200px;
        background-color: #FFFF99;
    }

    .right {
        float: right;
        height: 300px;
        width: 300px;
        background-color: #CCCCFF;
    }

    .box {
        height: 200px;
        width: 800px;
        margin: 0 auto;
        background-color: #CCCCCC;
    }

    /*使用伪元素代替了html中的额外标签*/
    .clearfix::after {
        content: "";
        display: block;
        clear: both;
    }
</style>
<body>
<div class="head clearfix">
    <div class="left"></div>
    <div class="right"></div>
</div>
<div class="box"></div>
</body>
</html>

方法三:双伪元素清除法(推荐)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>清除浮动</title>
</head>
<style>
    .head {
        width: 600px;
        margin: 0 auto;
        background-color: #FFCCCC;
    }

    .left {
        float: left;
        height: 300px;
        width: 200px;
        background-color: #FFFF99;
    }

    .right {
        float: right;
        height: 300px;
        width: 300px;
        background-color: #CCCCFF;
    }

    .box {
        height: 200px;
        width: 800px;
        margin: 0 auto;
        background-color: #CCCCCC;
    }

    /*使用伪元素代替了html中的额外标签,clearfix::before解决外边距塌陷问题*/
    .clearfix::before, .clearfix::after {
        content: "";
        display: table;
    }

    .clearfix::after {
        clear: both;
    }
</style>
<body>
<div class="head clearfix">
    <div class="left"></div>
    <div class="right"></div>
</div>
<div class="box"></div>
</body>
</html>

此方法小米,淘宝的官网等目前都依然采用

方法四:给父元素添加overflow: hidden;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>清除浮动</title>
</head>
<style>
    .head {
        width: 600px;
        margin: 0 auto;
        background-color: #FFCCCC;
        overflow: hidden;
    }

    .left {
        float: left;
        height: 300px;
        width: 200px;
        background-color: #FFFF99;
    }

    .right {
        float: right;
        height: 300px;
        width: 300px;
        background-color: #CCCCFF;
    }

    .box {
        height: 200px;
        width: 800px;
        margin: 0 auto;
        background-color: #CCCCCC;
    }
</style>
<body>
<div class="head">
    <div class="left"></div>
    <div class="right"></div>
</div>
<div class="box"></div>
</body>
</html>
最终效果

相关文章

  • 前端清除浮动常用的四种方法

    前言 清除浮动主要是为了解决,当父元素未设置高度,子元素使用了浮动(浮动元素会脱离标准流,不占位),引起的内部高度...

  • 前端面试积累2-清除浮动

    1.清除浮动的方法 方法一:对父级设置适合的CSS高度(不推荐) 方法二:clear:both 清除浮动 (常用)...

  • 前端必须知道的CSS原理

    清除浮动原理 一说到清除浮动,作为前端开发者都不陌生,使用最普遍的方法就是下面这段代码了 清除浮动的关键: cle...

  • css清除浮动

    前端开发中浮动处处可见,本文探讨浮动的成因以及如何更加有效的清除浮动。 1、浮动与清除浮动 2、清除浮动 基本cs...

  • css常见清除浮动法

      清除浮动主要是为了解决父级元素因为子级浮动脱标引起内部高度为0的问题,常见的清除浮动方法如下四种: 1.额外标...

  • 清除浮动的常用方法

    1.给父盒子定义伪类 after 和 zoom 要把clearfloat 和 zoom 综合使用才能解决兼容性问题...

  • 常用的清除浮动方法

    增加div 使用after伪类

  • 清除浮动

    -方法1:伪元素清除浮动(也是小编最常用的方法)css如下: html如下: -方法2:在浮动元素下方添加块级元素...

  • CSS浮动续

    CSS清除浮动案例 CSS版心居中显示案例 清除浮动的四种用法: 1. 使用空标记清除浮动,隔墙法,增加标签 2....

  • 小猿圈之HTML/css清除浮动的方法都有哪些?

    清楚浮动对于前端学习者是比较了解的,刚开始接触前端就需要了解,那你知道HTML/css清除浮动的方法都有哪些?小猿...

网友评论

    本文标题:前端清除浮动常用的四种方法

    本文链接:https://www.haomeiwen.com/subject/zcpemrtx.html