如何清除浮动带来的影响

文章目录

  • 前言
  • 一、为什么要清除浮动
  • 二、清楚浮动的方法
    • 1.额外标签发clear清除
    • 2.父级添加overflow属性
    • 3.父级添加after元素
    • 4.父级添加双伪元素
  • 总结


前言

        浮动给我们带来许多便利的同时也带来了一些影响,比如,你给一个盒子添加浮动之后,这个盒子就会脱离标准流,也就是不占有位置,下面的盒子就会移动上来占用添加浮动盒子的位置,这就破坏了我们的网页布局,为了避免这种情况发生,我们就需要清除浮动。我们清除浮动的本质就是清除浮动元素造成的影响,下面就让我们来学习清除浮动。


一、为什么要清除浮动

        我们为什么要清除浮动,最笼统的说发就是浮动影响了我们的网页布局 ,详细点就是因为浮动父级没有高度了、子盒子浮动了、影响了下面的布局。

                             

例1.1 父盒子没有高度

                                    

                                                              例1.2 影响下面布局

二、清楚浮动的方法

1.额外标签发clear清除

        clear有三个属性:

        1.right清除右侧浮动的影响

        2.left清除左侧浮动的影响

        3.both同时清除左右两侧浮动的影响

        在浮动元素末尾添加一个空的标签,例如<div class=“.box3”></div>   .box3 {clear:both;}

代码如下(示例):

 .box {
            width: 100%;
            border: 2px solid black;
        }

  .box1 {
            float: left;
            width: 200px;
            height: 200px;
            background-color: pink;
        }

  .box2 {
            width: 300px;
            height: 300px;
            background-color: skyblue;
        }

  .box3 {
            clear: both;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="box1"></div>
        <div class="box3"></div>
    </div>
    <div class="box2"></div>

2.父级添加overflow属性

        给浮动盒子的父元素添加overflow:hidden 属性

代码如下(示例):

    .box {
            overflow: hidden;
            width: 100%;
            border: 2px solid black;
        }

        .box1 {
            float: left;
            width: 200px;
            height: 200px;
            background-color: pink;

        }

        .box2 {
            width: 300px;
            height: 300px;
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="box1"></div>
    </div>
    <div class="box2"></div>
</body>

      

  3.父级添加after元素.

        给浮动盒子父级元素添加after元素

代码如下(示例):

  .box {
            overflow: hidden;
            width: 100%;
            border: 2px solid black;
            *zoom: 1
        }

        .box::after {
            content: "";
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }

        .box1 {
            float: left;
            width: 200px;
            height: 200px;
            background-color: pink;

        }

        .box2 {
            width: 300px;
            height: 300px;
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="box1"></div>
    </div>
    <div class="box2"></div>

 

 4.父级添加双伪元素

           给浮动盒子父级元素添加after和before元素

代码如下(示例):

 .box {
            overflow: hidden;
            width: 100%;
            border: 2px solid black;
            *zoom: 1
        }

        .box::before,
        .box::after {
            content: "";
            display: table;
        }

        .box::after {
            clear: both;
        }

        .box1 {
            float: left;
            width: 200px;
            height: 200px;
            background-color: pink;

        }

        .box2 {
            width: 300px;
            height: 300px;
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="box1"></div>
    </div>
    <div class="box2"></div>

 


总结

1.额外标签发clear清除(不推荐使用)

2.父级添加overflow属性(不推荐使用)

优点:代码简洁

缺点:内容增多的时候容易造成不会自动换行导致内容被隐藏掉,无法显示要溢出的元素

不推荐使用

3.父级添加after元素(推荐使用)

优点:符合闭合浮动思想,结构语义化正确

缺点:ie6-7不支持伪元素:after,使用zoom:1触发hasLayout.

4.父级添加双伪元素(推荐使用)

优点:代码更简洁

缺点:用zoom:1触发hasLayout.

        

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值