1、相对定位
介绍:自恋型定位相对于自己之前的位置进行移动
代码: position:relative;
特点:
1、需要配合方位属性实现移动
2、相对于自己原来位置进行移动
3、在页面中占位置一没有脱标
4、盒子仍然具有标签原来的显示模式特点
5、盒子加position:relative;
后,如果不加方位名词,盒子是不会变化的
应用场景:
1.配合绝对定位组CP(子绝父相)
2.用于小范围的移动
<style>
.box{
position: relative;
left: 100px;
top: 100px;
height: 100px;
width: 100px;
background-color: pink;
}
</style>
</head>
<body>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<div class="box"></div>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
</body>
粉色盒子相对于自己原先的位置向右向下移动了100px。他原先的位置没有被其他标签占领
相对定位占有自己原先的位置,人走茶不凉
2、绝对定位
绝对定位是元素在移动的时候,是相对 他祖先的元素 来说的(拼爹型)
绝对定位的盒子具有行内块元素的特点:加宽度高度生效,如果只有宽度,则整个盒子将因为没有高度而隐形
<style>
.father{
height: 100px;
width: 100px;
/*以相对定位举例*/
position: relative;
}
.son{
position: absolute;
left: 0;
top: 0;
height: 100px;
width: 100px;
background-color: pink;
}
</style>
</head>
<body>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<div class="father">
<div class="son"></div>
</div>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
</body>
</html>
</body>
如果父亲有定位,则以父亲为基准移动
如果父亲没有定位,则以父亲的父亲为基础,如果所有的父亲都没有定位,则以浏览器为基准
把父盒子注释了
<style>
/* .father{
height: 100px;
width: 100px;
position: relative;
} */
.son{
position: absolute;
left: 50px;
top: 50px;
height: 100px;
width: 100px;
background-color: pink;
}
</style>
这个盒子就是以浏览器为基准进行移动的
3固定定位
介绍:死心眼型定位,相对于浏览器进行定位移动代码:position:fixed;
特点:
1.需要配合方位属性实现移动
2.相对于浏览器可视区域进行移动
3.在页面中不占位置一已经脱标
应用场景:
1.让盒子固定在屏幕中的某个位置
<style>
.son {
position: fixed;
top: 0;
height: 100px;
width: 100px;
background-color: pink;
}
</style>
</head>
<body>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<div class="son"></div>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
<p>测试定位测试定位测试定位测试定位测试定位测试定位</p>
</body>
运行效果:粉色盒子在固定位置不变,无论怎么移动鼠标,他都在浏览器固定区域
4.元素层级问题
不同布局方式元素的层级关系:
标准流<浮动<定位
不同定位之间的层级关系:
相对、绝对、固定
默认层级相同此时HTML中写在下面的元素层级更高,会覆盖上面的元素
正常情况下,定位的盒子后来者居上,但是可以通过z-index: 数字;
改变次序.数越大,层级越高.
默认值:z-index: 0;