CSS position属性详解
元素位置position
static(默认)
遵从文档流(都在同一个平面布局,占空间),在此状态下定义top、left、right、bottom都不生效
relative
遵从文档流:占空间,但是位置发生偏移。
/* 相对于自己之前的位置(加上了外边距和内边距还有border的位置)下移
属性不会叠加,直接执行最后的一个
移动之后,原来的空间会保留*/
<style>
positon: relative;
top: 120px;//距离顶端120px,向下移
top:-50px;
left: 530px;//离右边530px,向右移
</style>
absolute
-
相对于祖系的最近的非static元素的位置(不考虑外边距、border的长度)
-
脱离文档流:和文档流不在一个平面,位置重复会发生重叠,可以用z-index来改变(改变的话只能放在文档流最底端)显现的元素;
-
改变窗口大小的时候会依据窗口大小改变,但是在页面中是固定的(拉动滑条会随页面变化) 、
-
//不太准确的描述 位置改变,但原来占有的空间被释放(其他与relative相似)
fixed
脱离文档流
定义成fixed,就会固定在整个屏幕的某个位置,就算拉动滑条,也不会改变位置(这也是它脱离文档流的一个表现)
sticky
-
有点类似于relative、absolute和fixed的结合
-
不加top的时候 --- relative(没有粘滞现象)
-
加方位的时候,(只有加top才会有粘滞现象)初始位置不会改变,但拉动滑条的时候
-
定义的是自身相对于窗口的位置
-
top:10px,滞留的时候停在距离窗口10px的位置
示例代码
html
css
body {
margin: 0;
padding: 0;
font-size: 24px;
}
.d {
/* position: relative; */
margin: 50px;
border: 10px solid #000;
width: 1120px;
padding: 30px;
background-color: red;
}
.d1,.d2,.d3 {
width: 1060px;
height: 100px;
margin: 20px;
}
.d1 {
background-color: pink;
position: sticky;
/* top:-50px; */
bottom:20px;
}
.d2 {
background-color: rgb(175, 105, 175);
}
.d3 {
background-color: rgb(216, 48, 216);
}

浙公网安备 33010602011771号