美文网首页Web前端之路
float脱离文档流及两个特性

float脱离文档流及两个特性

作者: 歇歇 | 来源:发表于2015-09-07 21:48 被阅读1315次

    文档流简介

    文档流是文档中可显示对象在排列时所占用的位置。窃以为可以把窗口看作是高度为1px,宽度为显示器宽度的组成(所以1366x768 px就是768行组成的),可显示的对象就像是word里面的文字,占满一行才会占用下一行的空间,当然对象的高度普遍大于1px,所以会同时占据多个最小行。

    脱离文档流

    绝对定位position:absolute;
    固定定位position:fixed;
    浮动float
    都会脱离文档流,但float比较难理解,所以我们重点说float,请看一下代码和运行效果:

    <!DOCTYPE html>
    <html>
    <head>
    <style> 
    div.container
    {
    width:30em;
    border:1px solid;
    padding:1px;
    }
    
    div.box
    {
    width:100px;
    border:1px solid red;
    float:left;
    }
    
    div.box1
    {
    margin-left:10px;
    border:1px solid green;
    }
    </style>
    </head>
    
    <body>
      <div class="container">
        <div class="box">float脱离<br>float</div>
        <div class="box1">看,单以文字来说,float并未脱离文档流,但是box1块级元素的位置又是说明其脱离了文档流</div>
      </div>
    </body>
    </html>
    
    

    下面是运行结果,你们也可复制了代码去自行测试

    运行结果

    所以这里我们把文字会认为float元素未脱离文档流当作是float的特性一;但其实它是脱离了文档流的,可以看见它也不能把父元素撑开

    第二段代码,知识修改了$(".box")与$(".box1")的上下位置,却发现不同的效果:

    <body>
      <div class="container">
        <div class="box1">看,单以文字来说,float并未脱离文档流,但是box1块级元素的位置又是说明其脱离了文档流</div>
        <div class="box">float脱离<br>float</div>//这个div之前在$(".box1")的上方
      </div>
    </body>
    

    下面是运行结果,你们也可复制了代码去自行测试

    运行结果

    这里可以看到float的第二个特性,对于非文字对象,它相当于positon:absolute;left:0;(或则是right:0;),且默认其父元素设置了position:relative;&&默认对在其之上的兄弟元素设置了float
    也就是说它脱离了文档流,但是还是在其父容器中,而position:absolute;在不为父容器设置position的情况下,是相对于window对象进行偏移的。

    注意:以上两个特性是自己闲来时总结的,并无官方文档支持,有不对的地方请大家指正,谢谢。

    相关文章

      网友评论

        本文标题:float脱离文档流及两个特性

        本文链接:https://www.haomeiwen.com/subject/glbucttx.html