目录
1.定义
2.static(默认定位)
2.1 含义
2.2 代码示例
3.relative(相对定位)
3.1 含义
3.2 代码示例
4. absolute(绝对定位)
4.1 含义
4.2 代码示例
5. fixed(固定定位)
5.1 含义
5.2 代码示例
6. sticky(粘性定位)
6.1 含义
6.2 代码示例
1.定义
position是CSS中的一个属性,可以灵活地改变盒子在页面中的位置。position有五种属性:static、relative、absolute、fixed、sticky。
2.static(默认定位)
2.1 含义
static是position的一个默认值,当使用static属性时,元素按正常文档流的位置进行排列,且top、left、bottom、right属性不生效。
2.2 代码示例
<style>
div {
......
/* 此时div的position默认为static ,下述代码不生效*/
top:50%;
}
</style>
<div>
<div>....</div>
</div>
3.relative(相对定位)
3.1 含义
relative是相对定位,元素相对其正常的位置进行定位,并且元素仍占据原本在文档流的位置,此时top、left、bottom、right属性生效。
3.2 代码示例
<style>
div {
......
/* 此时元素向下移动20px,但是其在文档流的占位依旧不变,只是视觉上下移了20px*/
position: relative;
top:20px;
}
</style>
<div>
<div>....</div>
</div>
4. absolute(绝对定位)
4.1 含义
absolute绝对定位,元素被移除文档流,该元素相对其最近的已定位的祖先元素进行定位,若没有找到已定位的祖先元素,则相对于窗口进行定位。
4.2 代码示例
/* 此时父盒子为相对定位,子盒子为绝对定位,子绝父相,子盒子在父盒子中进行定位 */
<style>
.parent{
.....
position: relative; /* 关键:成为已定位的祖先元素/
}
.child{
....
position: absolute; /* 绝对定位 */
right: 10px;
bottom: 10px; /* 贴在父盒子的右下角 */
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>
5. fixed(固定定位)
5.1 含义
fixed固定定位,元素相对于视口(页面中的可视区域)进行定位,即使页面滚动,元素也会固定在对应的位置。
5.2 代码示例
<style>
.navbar{
position: fixed;
left: 0; top: 0; /* 导航栏贴在视口顶部 */
width: 100%; height: 60px;
}
.content{ height: 200vh; padding: 20px; }
</style>
</head>
<body>
<nav class="navbar">顶部导航栏(fixed)</nav>
<div class="content">
往下滚动,导航栏始终固定在视口顶部。
</div>
</body>
</html>
6. sticky(粘性定位)
6.1 含义
sticky粘性定位,为元素设定一个阈值,使元素在relative相对定位和fixed固定定位中进行切换。即用户的滚动行为跨过阈值时,元素会从relative相对定位变为fixed固定定位。
6.2 代码示例
<style>
.bar{
background: #2196F3;
color: #fff;
padding: 12px;
position: sticky;
top: 0; /* 滚到顶部时,到达阈值top为0的要求,盒子在顶部粘住 */
}
body{ margin: 0; }
.space{ height: 200vh; padding: 0 20px; }
</style>
</head>
<body>
<div class="space">
<p>往下滚动↓</p>
<div class="bar">我会粘在顶部</div>
<p>继续滚动,上面那条蓝条会一直保持置顶。</p>
</div>
</body>