position的用法

Position定义: position 属性规定元素的定位类型。 
这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。这里写图片描述

在介绍postion值之前先给大家介绍一下 z-index的使用,它可被用于将在一个元素放置于另一元素之后,决定了一个HTML元素层叠级别。元素层叠级别是相对于元素在Z轴上(X轴与Y轴的平面相垂直相的平面)的位置而言。一个更高的Z-index值意味着这个元素在叠层顺序中会更靠近顶部(值越大越在上层,可以允许有负数值)。


absolute(绝对定位): 脱离了文本流(即在文档中已经不占据位置),absolute在没有设定TRBL值时是根据父级对象(此对象定位必须为脱离文档流的定位,否则就以body为其父元素)的坐标作为始点的(图1),当设定TRBL值后则根据浏览器的左上角作为原始点(图2)。

这里写图片描述


relative(相对定位):相对于元素本身在文档中应该出现的位置来移动这个元素,可以通过TRBL来移动元素的位置,实际上该元素依然占据文档中原有的位置,只是视觉上相对原来的位置有移动。 
这里写图片描述


fixed(固定定位): 元素将被设置在浏览器上一个固定位置上,不会随其他元素滚动。形象点说,上下拉动滚动条的时候,fixed的元素在屏幕上的位置不变。需要注意的是IE6并不支持此属性。

<style>
    #child{
         200px;
        height: 200px;
        background: #0099FF;
        position: fixed;
        left: 200px;
        top: 200px;
    }
    #parent{
         400px;
        height: 2200px;
        background: red;
        margin-top: 200px;
        margin-left: 200px;
        position: absolute;
    }
</style>
<body>
    <div id="parent">
        <div id="child"></div>
    </div>         
</body>

过程一 

这里写图片描述
过程二 
这里写图片描述
从上面的两个过程中可以看出fixed是相对于浏览器的窗口进行定位。

inherit(继承定位):规定应该从父元素继承 position 属性的值。

#child{
     200px;
        height: 200px;
        background: #0099FF;
        position: inherit;
        left: 100px;
        top: 100px;
    }
    #parent{
         400px;
        height: 2200px;
        background: red;
        margin-top: 200px;
        margin-left: 200px;
        position: absolute;
    }
<body>
    <div id="parent">
        <div id="child"></div>
    </div>         
</body>

这里写图片描述
从父元素那儿继承了absolute属性,使得child相对于父元素left: 100px; 
top: 100px;


initial(还原定位): initial的作用是把属性设置回默认值。

static(静态定位):如果你没有设置position属性,那么缺省就是static。top,left,bottom,right等属性,在static的情况下是无效的,要使用这些属性,必须把position设置为其他值。

原文地址:https://www.cnblogs.com/daydayupyxq/p/8586553.html