1. static
static是CSS中position的默认值。在static定位下,元素按照HTML文档流中的默认顺序进行布局,不受top、bottom、left、right等属性的影响。如果没有设置position属性,则元素默认为static定位。
2. relative
relative定位是相对于元素自身在文档流中的默认位置进行定位。相对定位的元素仍然占据原来的空间,仅通过设置top、bottom、left、right来调整位置。这些属性控制元素在正常文档流中的偏移,不会破坏文档布局。
相对定位的偏移可以是负值,可通过top、bottom、left、right分别设置。
例:
.relative {
position: relative;
top: 50px;
left: -20px;
}
3. absolute
absolute定位是相对于距离该元素最近的已定位祖先元素,如果没有已定位祖先元素,那么相对于文档的初始包含块进行定位。
绝对定位的元素会从文档流中脱离,不占据位置。
例:
.absolute {
position: absolute;
top: 100px;
left: 200px;
}
4. fixed
fixed定位与absolute定位类似,区别在于fixed定位是相对于浏览器窗口进行定位,而不是相对于文档的初始包含块。即使滚动页面,元素的位置也不会改变。
例:
.fixed {
position: fixed;
top: 0;
right: 0;
}
5. sticky
sticky定位是相对定位与固定定位的结合体,元素在距离其包含块顶部的距离小于指定值时,表现为相对定位,当滚动时,元素固定在包含块的顶部。
例:
.sticky {
position: sticky;
top: 50px;
}
总结
CSS中的position属性可以设置元素的定位方式。static是默认值,元素按照文档流进行布局。relative定位是相对于元素自身偏移。absolute定位是相对于最近的已定位祖先元素。fixed定位是相对于浏览器窗口进行定位。sticky定位是相对定位与固定定位的结合体。
根据具体布局需求,可以灵活使用这些定位方式,实现不同的布局效果。