css中的position属性是用于设置元素位置的定位方式
它有以下几种取值:
static:默认定位方式,子容器在父容器中按照默认顺序进行摆放
absolute:绝对定位,元素不占据父容器空间,相当于文档body定位,根据父容器的position:relative进行定位,如果父容器没有该属性,就默认以body为父容器进行定位
relative:相对定位,占据父容器空间,但显示位置相当于自身位置进行偏移,可以在父容器上写该属性,帮助子元素定位
fixed:固定定位,元素相当于窗口进行定位(相当于窗口而不是文档定位,所以即使发生进度条滚动时,元素相当于窗口的位置仍然不变)
sticky:粘性定位,这是一个带过渡效果的定位方式,只有在滚动时才能看出其变化效果
当偏移量大于指定值时,以static方式显示
当偏移量小于指定值时,以fixed方式显示,但却像relative方式一样占据父容器空间
当元素到达父容器边缘时,位置相当于父容器不再变化
效果可看以下html代码
<body>
<div>
<div id="div1">div1</div>
<div id="div2">div2</div>
</div>
<div id="div3">div3</div>
</body>
默认定位static
<style>
#div1 {
width: 200px;
height: 100px;
background: red;
position: static;
} #div2 {
width: 200px;
height: 100px;
background: yellow;
} #div3 {
width: 200px;
height: 100px;
background: blue;
}
</style>
absolute定位
#div1 {
width: 200px;
height: 100px;
background: red;
position: absolute;
left: 400px;
top: 300px;
relative定位
#div1 {
width: 200px;
height: 100px;
background: red;
position: relative;
left: 400px;
top: 300px;
}
fixed定位
#div1 {
width: 200px;
height: 100px;
background: red;
position: fixed;
right: 10px;
bottom: 10px;
}
sticky定位
<body>
<div id="div4"></div>
<div id="div1">
<div id="div2"></div>
<div id="div3"></div>
</div>
<div id="div5"></div>
</body> <style>
* {
margin: 0px;
padding: 0px;
} #div1 {
width: 400px;
height: 400px;
background: red;
} #div2 {
width: 200px;
height: 100px;
background: yellow;
position: sticky;
top: 40px;
} #div3 {
width: 300px;
height: 200px;
background: rebeccapurple;
} #div4 {
width: 400px;
height: 200px;
background: lightblue;
} #div5 {
width: 400px;
height: 2000px;
background: lightblue;
}
</style>