• float和absolute脱离文档流的区别


    div{
    width:400px;
    height:300px;
    opacity:0.1;
    background: red;
    position: absolute;
    }

    以上是绝对定位:

    p元素会忽视该元素的存在

    效果

        div{
                width:400px;
                height:300px;
                opacity:0.1;
                background: red;
                float:left;
            }

    以上是浮动 虽然脱离了文档了但其他元素还是给其让出位置

     效果如下

     使用float脱离文档流时,其他盒子会无视这个元素,但其他盒子内的文本依然会为这个元素让出位置,环绕在周围。 
    而对于使用absolute :position脱离文档流的元素,其他盒子与其他盒子内的文本都会无视它

    什么时候使用left 什么时候使用margin-left ?

    使用left 这个只能在自身的position为相对定位或者绝对定位

    而且有一个position为相对定位或者绝对定位的参照物(父级元素或者最近的元素如果没有则默认为文档)

    这里举

            body{
                margin:0;
                padding:20px;
            }
            div{
                margin:0;
            }
            #head{
                /*absolute以父级元素的左上角为参照点 并且不受padding影响 这里不设定top值时默认由于body的padding产生上边距*/
                position:absolute;
                width:100%;
                height:30px;
                top:30px;
                position: relative;/*以body为原点*/
                box-shadow: 0px 2px 4px 2px blue;
            }
           
    
            #big{
                margin-top:20px;
                margin-left:20px;
                position: absolute;
                top:100px;
                left:100px;
                width: 200px;
                height:200px;
                background:white;
                box-shadow: 0px 2px 4px 2px red;
    
            }
            #middle{
                top:10px;
                left:10px;
                position: absolute;
                width: 100px;
                height:100px;
                background:white;
                box-shadow: 0px 2px 4px 2px red;
            }
    <div id="head"></div>
        <div id="big">
            <div id="middle"></div>
        </div>

    效果如下:

    现在将css中的head部分改为:

    #head{
                /*absolute以父级元素的左上角为参照点 并且不受padding影响 这里不设定top值时默认由于body的padding产生上边距*/
                position:absolute;
                width:100%;
                height:30px;
                top:30px;
                position: absolute;/*以body为原点*/
                box-shadow: 0px 2px 4px 2px blue;
            }

     

    注意一点:

    当在一个元素内部的两个元素均为相对定位 或者其他,允许重叠

    使用absolute和relative区别

    前者必须设定父级元素的position 如果没有父级元素或者父级元素不设定position则使用浏览器作为参照物 且padding对其不影响  注意:该属性不适合做网页布局 需要都以浏览器为参照物

    后者 :不管父级是否设置position均以其作为原点作为参照物,而且padding会影响参照点 如果没有父元素则以浏览器为参照物, 适合用于布局  无论父级存在不存在,无论有没有TRBL,均是以父级的左上角进行定位,但是父级的Padding 属性会对其影响。 

  • 相关阅读:
    齐文词根词缀---1、第一讲
    元音发音规则
    英语重读规则
    英语单词重读规则
    unicode,ansi,utf-8,unicode big endian编码的区别
    Netty中粘包和拆包的解决方案
    【转载】 DirectByteBuffer内存释放
    Netty 中ChannelOption的含义以及使用的场景Netty 中ChannelOption的含义以及使用的场景
    Connection reset原因分析和解决方案
    Netty实现Socket
  • 原文地址:https://www.cnblogs.com/webcyh/p/11336181.html
Copyright © 2020-2023  润新知