CSS的五种定位方式
定位方式:static、relative、absolute、fixed、sticky
- static: 元素不会以任何特殊的方式定位,始终以页面的正常流进行定位。
<style>
.static {
position: static;
background-color: green;
width: 200px;
}
</style>
<body>
<div class="static">这个盒子的定位方式</div>
</body>
效果图:
- relative: 元素相对于其正常位置进行定位
<style>
div {
border: 1px solid green;
}
div.static {
position: relative;
background-color: red;
width: 250px;
left: 50px;
}
</style>
<body>
<div>
<div class="static">这个盒子的定位方式为relative</div>
</div>
</body>
效果图:
- absolute: 元素相对于最近的定位祖先元素进行定位
<style>
.relative {
border: 1px solid green;
width: 200px;
height: 100px;
}
.absolute {
border: 1px solid green;
position: absolute;
top: 50px;
left: 20px;
}
</style>
<body>
<div class="relative">
<div class="absolute">这个元素为absolute定位</div>
</div>
</body>
效果图:
- fixed: 元素相对于视口进行定位,即使滚动页面,也始终位于同一位置
<style>
.fixed {
border: 1px solid green;
width: 200px;
height: 200px;
position: fixed;
top: 50px;
left: 50px;
}
.scroll {
height: 1000px;
}
</style>
<body>
<div class="fixed">这个元素为fixed定位</div>
<div class="scroll"></div>
</body>
效果图:
注:页面已经拉到最底下了,元素仍然在相对于视口的位置
- sticky: 元素根据用户的滚动位置进行定位;根据滚定位置在相对(relative)和固定(fixed)之间切换
<style>
.sticky {
border: 1px solid green;
width: 200px;
height: 200px;
position: sticky;
top: 0px;
}
.scroll {
height: 1000px;
}
</style>
<body>
<div>这是顶部的文字</div>
<div class="sticky">这个元素为sticky定位</div>
<div class="scroll"></div>
</body>
效果图:
完。
文章供自身学习与巩固,若能帮到大家我也很开心。
如有不当和错误,望大家多指点,谢谢。