float失效的情况

前言:在最近的笔试中,两次碰到类似的问题,什么情况下float会失效?我目前知道的有2种:

1)display:none;

2)position:absolute、fixed。

(1)display:none

设置成display:none了之后,float失效这一点自然不用说。因为此时元素已经不在dom树里了,float当然起不了作用。

(2)position:absolute、fixed。

先看看没有设置position:absolute/fixed时的表现:

<div id="wrap">
    <div id="div1">浮动div</div>
    <div id="div2">参考div</div>
</div>
#wrap{
     width:300px;
     height:300px;
     border:1px solid black;
     position: relative;
     margin: 0 auto;
 }
 #div1{
     width:100px;
     height:100px;
     background: red;
     float:left;

 }
 #div2{
     width:100px;
     height:100px;
     background:blue;
     float:left;
 }

image

现在,为红色div1设置position:absolute/fixed:

#div1{
     width:100px;
     height:100px;
     background: red;
     float:left;
     position: fixed;
     /*或者position: absolute;*/
     top:20px;
     left:20px;
 }

image                      image

               position:absolute                                                         position:fixed

以上两种,无论是fixed(相对窗口定位)或者absolute(相对最近的position属性不为static的祖先元素),都使得红色div的float失效,于是蓝色div直接浮动到边界的左上角。

转载于:https://www.cnblogs.com/youhong/p/6663536.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值