CSS定位技术的全面解析

发表时间: 2024-04-08 09:33

使用定位可以将元素放到网页的任意位置。


相对定位



相对定位——

1.参照自己原来的位置安装边偏移设置盒子的位置。

2.不脱标,占位,原来的位置还留着不会被别挤占。

3.标签显示模式不变。

工作中一般相对定位不是单独使用的,因为原来位置会留白。

绝对定位——


1. 脱标,不占位

2. 参照物:先找最近的已经定位的祖先元素;如果所有祖先元素都没有定位,参照浏览器可视区改位置

3. 显示模式特点改变:宽高生效(具备了行内块的特点

.news {

position: relative;

margin: 100px auto;

width: 400px;

height: 350px;

background-color: #f8f8f8;

}

.news span {

top: 0;

right: 0;


display: block;

width: 92px;

height: 32px;

background-color: rgba(0,0,0,0.6);

text-align: center;

line-height: 32px;

color: #fff;

}

父级一定要设置position: relative,不然就会按浏览器的位置发生偏移。


定位居中

第一种方式,使用absolute,margin-left,margin-top,left,top来实现。

<style>

img{

left: 50%;

top:50%;

margin-left: -265px;

margin-top: -177px;

/* transform: translate(-50%,-50%);*/

}

</style>

第二种方式,使用transform: translate(-50%,-50%);来替代margin-left,margin-top,用来设置偏移自身长度的-50%。

固定定位


<style>

* {

margin: 0;

padding: 0;

}


/*

1. 脱标,不占位

2. 参照物:浏览器窗口

3. 显示模式特点 具备行内块特点

*/


div {

position: fixed;

top: 0;

right: 0;

width: 500px;

}

</style>

堆叠层级


<style>

div {

width: 200px;

height: 200px;

}


.box1 {

background-color: pink;

/* 取值是整数,默认是0,取值越大显示顺序越靠上 */

z-index: 1;

}


.box2 {

background-color: skyblue;

left: 100px;

top: 100px;


z-index: 2;

}

</style>

效果如下


定位总结