最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 前端路上遇见的奇怪问题--魔幻的float?

    正文概述 掘金(Supersist)   2021-08-08   489
    .parent 
    { background-color: red;/* border: blue solid 1px; */}
    .son
    {width: 100px;height: 100px;background-color: silver;}
    .box1
    {  height: 200px;  width: 200px;  background-color: pink;}
    

    css代码如上 页面结构如下

     <div class="parent ">
        <div class="son">儿子</div>
     </div>
     <div class="box1"> </div>
    

    显示效果如下 可以理解:

    前端路上遇见的奇怪问题--魔幻的float?

    此时给son添加float:left,父元素高度丢失,导致son和box1重叠 这也能理解

    前端路上遇见的奇怪问题--魔幻的float?

    此时在给选择器box1 clear:left; 此时呢son和box1就不会重叠效果图如下

    前端路上遇见的奇怪问题--魔幻的float?

    接下来就有些奇怪了 注释掉clear: left,给box1 添加一个上外边距 页面结构不变显示效果就是如下和我想象中的不一样。想象中的应该是son不动 box1下移150px;

    .parent 
    { background-color: red; /* border: blue solid 1px; */ }
    .son
    {width: 100px;height: 100px;background-color: silver;float: left;            }
    .box1
    {height: 200px;width: 200px;background-color: pink; /* clear: left; */
     margin-top: 150px;}
    

    前端路上遇见的奇怪问题--魔幻的float?

    **儿子为什么也下移了呢??**原因是什么呢?不知道!parent元素没有了高度,那么给父元素一个border此时的显示效果就是如下:

    前端路上遇见的奇怪问题--魔幻的float?

    既然想到了是父亲没有了高度,那么给父亲一个height:100px;

    前端路上遇见的奇怪问题--魔幻的float?

    这就正常了。修改一下css代码

    .parent{ 
        background-color: red;
        /* border: blue solid 1px; */
        /* height: 100px; */
    }
    .son{
        width: 100px;
        height: 100px;
        background-color: silver;float: left;
          }
    .box1{
    height: 200px;
    width: 200px;
    background-color: pink;
    /* clear: left; */
     margin-top: 150px;}
    .clearfix::before{
    display: table;content: '';
     /* clear: both; */}
    
      <div class="parent clearfix"> 
               <div class="son">儿子</div>
        </div>    
    <div class="box1">box1</div>
    

    前端路上遇见的奇怪问题--魔幻的float?

    总结一下:默认情况下 ,父元素的高度由子元素的内容撑开,当使用float属性后,son脱离了文档流,父元素高度丢失,此时给box1添加一个上外边距无法使得只有box1下移150px;实际上是son和box1都会下移,经过上面的测试发现只要给parent高度撑开,margin-top就会起效果,除此之外在box1前面加一个

    111 也会起效,完全不需要写clearfix这个类选择器。如下图所示。 

    前端路上遇见的奇怪问题--魔幻的float?

    .parent 
    { background-color: red;   
    /* border: blue solid 1px; */ 
    /* height: 100px; */
     } 
    .son{  
    width: 100px; 
    height: 100px;
    background-color: silver; 
    float: left;
       }        
    .box1{
     height: 200px;
    width: 200px;
    background-color: pink; 
    /* clear: left; */
    margin-top: 150px;
    }
    
    
    
    <body>
    <div>111</div><div class="parent"> 
      <div class="son">儿子</div><
    /div
    ><div class="box1">box1</div>
    </body>
    

    至于为什么,个人表示目前不清楚。。。只能说因吹斯听!!


    起源地下载网 » 前端路上遇见的奇怪问题--魔幻的float?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元