清除浮动的八种方法

浮动是什么?

浮动元素会脱离文档流进行左浮或者右浮,直到碰到父级元素或者其他的浮动元素。

为什么清除浮动:浮动会导致父元素高度坍塌,因为浮动脱离文档流,浮动以后不占文档流的位置,撑开的父元素高度肯定会坍塌。

清除浮动的八种方法:

1、父级div给出固定的高度。手动定义height,这样就解决了父级元素获取不到高度的问题。

优点:代码量少,简单容易掌握。

缺点:只适合高度固定的布局,如果高度和父级div不同会出现问题。

2、overflow,设置overflow:hidden。

优点:代码少,浏览器支持。

缺点:会把超出的部分隐藏起来,而且不能配合position使用

3、额外标签,添加一个新的标签,如div,或者br,并且设置标签的属性clear:both;清除浮动,让父级能自动获得高度。

优点:代码少,浏览器支持,不会各种问题。

缺点:会有很多空的div或者br。

4、使用单伪类after和zoom,使用方法:

.clearfloat:after{

        content:"";//设置内容为空

       height:0;//高度为0

        line-height:0;//行高为0

        display:block;//将文本转为块级元素

        visibility:hidden;//将元素隐藏

        clear:both//清除浮动

  }

      .clearfloat{

       zoom:1;为了兼容IE

      }

优点:浏览器支持好,大型的浏览器都在使用,建议使用。

缺点:代码多,需要after和zoom都要使用才能兼容主流的浏览器。

5、双伪类清除浮动。使用方法:

 .clearfloat:before,.clearfloatafter {

                 content: "";

                 display: block;

                  clear: both;

             }

            .clearfloat {

                 zoom: 1;

           }

缺点:不严谨不建议使用

6、父级div跟着浮动,所有代码一起浮动就会形成一个整体,

缺点:会产生新的问题,不建议使用。

7、父级定义display:table;将div属性变成的表格。

缺点:产生新的问题,而且影响布局。

8、overflow:auto;需要设置width,不设置height,浏览器会自动检测浮动区的高度。

缺点:容易生成滚动条。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值