绝对定位

属性:position
值: absolute

通过指定left,top绝对定位一个元素

设置了绝对定位的元素,相当于该元素被从原文档中删除了 
所以”正常文字4“会紧接着出现在 ”正常文字2“后面,而不会留下空档

<style>
    p.abs{
        position: absolute;
        left: 150px;
        top: 50px;
    }
</style>
<p>正常文字1</p>
<p>正常文字2</p>
<p class="abs">绝对定位文字3</p>
<p>正常文字4</p>
<p>正常文字5</p>

绝对定位是基于最近的一个定位了的父容器

对于 "绝对定位的文字" 这个p,其定位了的父容器即 class="absdiv" 的div 
所以 "绝对定位的文字" 这个p 出现的位置是以这个div 为基础的

<style>
    p.abs{
        position: absolute;
        left: 100px;
        top: 50px;
    }
    .absdiv{
        position: absolute;
        left: 150px;
        top: 50px;
        width: 215px;
        border: 1px solid blue;
    }
</style>
<di>
    <p>正常文字a</p>
    <p>正常文字b</p>
    <p>正常文字c</p>
    <p>正常文字d</p>
    <p>正常文字e</p>
    <p>正常文字f</p>
    <p>正常文字g</p>
</di>
<div class="absdiv">这是一个定位了的div
    <p class="abs">绝对定位的文字</p>
</div>


如果没有定位了的父容器

"绝对定位的文字" 这个p 的父容器div,并没有定位。 所以它的”最近的一个定位了的父容器” 即body


<style>
    p.abs{
        position: absolute;
        left: 100px;
        top: 50px;
    }
</style>
<di>
    <p>正常文字a</p>
    <p>正常文字b</p>
    <p>正常文字c</p>
    <p>正常文字d</p>
    <p>正常文字e</p>
    <p>正常文字f</p>
    <p>正常文字g</p>
</di>
<div>
    这个div没有定位
    <p class="abs">绝对定位的文字</p>
</div>

z-index

通过绝对定位可以把一个元素放在另一个元素上,这样位置就重复了。

重复了,就存在一个谁掩盖谁的问题。 这个时候就可以使用

z-index属性, 当z-index的值越大,就表示放上面,z-index:越小就表示放下面。


<style>
    img#i1{
        position: absolute;
        left: 60px;
        top: 20px;
        z-index: -10;}
        img#i2{
            position: absolute;
            left: 60px;
            top: 120px;
            z-index: 10;
        }
</style>
<div>
    <p>正常文字a</p>
    <p>正常文字b</p>
    <p>正常文字c</p>
    <p>正常文字d</p>
    <p>正常文字e</p>
    <p>正常文字f</p>
    <p>正常文字g</p>
</div>
<img id="i1" src="https://how2j.cn/example.gif">
<img id="i2" src="https://how2j.cn/example.gif" />

相对定位

属性:position
值:relative

与绝对定位不同的是,相对定位不会把该元素从原文档删除掉,而是在原文档的位置的基础上,移动一定的距离

<style>
    p.r{
        position: relative;
        left: 150px;
        top: 50px;
    }
</style>
<p>正常文字1</p>
<p>正常文字2</p>
<p class="r">相对定位文字3</p>
<p>正常文字4</p>
<p>正常文字5</p>


练习-相对定位,但是又不占用位置

<style>
    div.container{
        position: absolute;
    }
    p.position{
        position: relative;
        left: 150px;
        margin: 0%;
    }
</style>


<p>正常文字1</p>
<p>正常文字2</p>
<div class="container">
    <p class="position">相对定位的文字3(不占坑)</p>

</div>
<p>正常文字4</p>
<p>正常文字5</p>