CSS top 语法
在 CSS 中,top 属性用于定义已定位元素的顶部偏移量。这个属性只有在元素的 position 属性值不是 static 时才会生效。
语法:
top: 数值;说明:
top 属性取值一般是一个数值,比如 px、em、rem、百分比(%)等。百分比值是相对于参考元素的 “高度” 计算的。
对于 top 属性,小伙伴们要清楚以下几点。
- 对于 position: relative; 的元素,top 的偏移是相对于元素 “自身” 原本在正常文档流中的位置。
- 对于 position: absolute; 的元素,top 的偏移是相对于其 “最近的已定位祖先元素” 的内边距盒顶部边缘。
- 对于 position: fixed; 的元素,top 的偏移是相对于 “视口” 的顶部边缘。
- 对于 position: sticky; 的元素,top 的值定义了元素在容器滚动时,其顶部边缘距离容器顶部边缘的阈值,达到这个阈值后元素会粘住。
如果同时设置了 top 和 bottom,则浏览器会尝试根据这两个值来决定元素的高度:
- 如果元素的 height 是 auto,并且不是 flex 和 grid 的子项,那么元素会被拉伸以满足 top 和 bottom 的距离要求。
- 如果元素已经设置了固定高度或在某些布局中(如 flex 容器),top 一般优先级更高(尤其在从上到下书写模式中)。
CSS top 摘要
| 属于 | CSS 定位 |
|---|---|
| 使用频率 | 高 |
| 是否继承 | 否 |
| 默认值 | auto |
| 兼容性 | 查看 |
| 官方文档 | 查看 |
| MDN | 查看 |
CSS top 示例
接下来,我们通过一个简单的例子来讲解一下 top 属性是如何使用的。
示例:top 基本用法
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
.parent {
position: relative;
width: 200px;
height: 200px;
background-color: lightskyblue;
}
.child {
position: absolute;
top: 30px;
width: 50px;
height: 50px;
background-color: hotpink;
}
</style>
</head>
<body>
<div class="parent">
<div class="child"></div>
</div>
</body>
</html>页面效果如下图所示。

分析:
在这个例子中,由于我们给父元素设置了 position: relative;,此时子元素的 position: absolute; 是相对于父元素来说的。top: 30px; 表示定义子元素距离父元素顶部距离为 30px。
