清除浮动的方法

除浮动其实叫做闭合浮动更合适,因为是把浮动的元素圈起来,让父元素闭合出口和入口不让他们出来影响其他的元素。

在CSS中,clear属性用于清除浮动,其基本语法格式如下:

选择器{clear:属性值;}

/*属性值为left,清除左侧浮动的影响

属性值为right,清除右侧浮动的影响

属性值为both,同时清除左右两侧浮动的影响*/

1.额外标签法

1.1 末尾标签法

通过在浮动元素的末尾添加一个空的标签。这是W3C推荐的做法,虽然比较简单,但是添加了无意义的标 签,结构化比较差,所以不推荐使用。下面三种写法都适用:

<div style="clear:both"></div>
 .clear { clear:both }
    <div class="clear"></div>
.clear{ clear:both }
    <br class="clear" />    <!--也可以使用br等别的块级元素来清除浮动-->

2.2 内部标签法,把div放进父盒子里,盒子会撑开,一般也不会用

2.overflow

给父级元素添加overflow样式方法。

代码比较简洁,可以通过触发BFC方式,但是因为本身overflow的本质是溢出隐藏的效果,所以有的时候也会有一些问题存在,比如内容增多的时候不会自动换行导致内容被隐藏掉,无法显示出要溢出的元素。

.father {
        overflow: auto;  
      /* 加上这句话,就可以清除浮动   overflow = hidden|auto|scroll 都可以实现*/
   }

3.伪元素法(最常用)

3.1 使用after伪元素清除浮动

after是在父元素中加一个盒子,这个元素是通过css添加上去的,符合闭合浮动思想,结构语义化正确。

父元素中加一个类名为clearfix 。但是这个方法IE6,7不识别,要进行兼容,使用zoom:1触发 hasLayout来清除浮动

代表网站:百度、淘宝、网易等

.clearfix:after{
    content:".";  /*尽量不要为空,一般写一个点*/
    height:0;     /*盒子高度为0,看不见*/
    display:block;    /*插入伪元素是行内元素,要转化为块级元素*/
    visibility:hidden;      /*content有内容,将元素隐藏*/
    clear:both;  
}

.clearfix {
    *zoom: 1;   /*  *只有IE6,7识别 */
}

3.2 after伪元素空余字符法

父元素中加一个类名为clearfix,也需要兼容IE6、7

.clearfix::after{
    content:"\200B";   /* content:'\0200'; 也可以 */
    display:block;
    height:0;
    clear:both;
}

.clearfix {
    *zoom: 1; 
}

3.3 使用before和after双伪元素清除浮动(推荐)

完全符合闭合浮动思想的方法。

父元素中加一个类名为clearfix,需要兼容IE6、7

代表网站:小米、腾讯

.clearfix:before, .clearfix:after {
        content: ""; 
        display: table;
    }
.clearfix:after {
        clear: both;
    }
.clearfix {
        *zoom: 1;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值