为什么顶部偏移(以 % 形式给出)不会垂直移动相对定位的元素?

问题描述 投票:0回答:1

假设有一个相对定位的 div 元素。当我将最高值设置为 % 时,它根本不执行任何操作。但是一旦我用px表达它,它就起作用了。有什么特别的理由/逻辑吗?

这行不通

<style>
div{
  position:relative;
  height:300px;
  width:300px;
  top:20%;
}
</style>

<body>
<div>Hello</div>
</body>

虽然这有效

<style>
div{
  position:relative;
  height:300px;
  width:300px;
  top:20px;
}
</style>

<body>
<div>Hello</div>
</body>

我尝试将这个 div 放入容器中并且成功了。它移动的量与包含元素的高度相关。

html css css-position viewport-units
1个回答
1
投票

为此,您需要将

height
设置为父元素,或
min-height
+
display: grid
:

body {
  min-height: 100vh;
  display: grid;
}

div {
  position: relative;
  height: 300px;
  width: 300px;
  top: 20%;
}
<div>Hello</div>

© www.soinside.com 2019 - 2024. All rights reserved.