我正在尝试按百分比创建一个垂直定位的div。我将父容器设置为相对和内容div设置为绝对。当我用像素定位内容div时,这可以正常工作,但是当我尝试百分比时,该百分比被忽略了:
.container {
position: relative;
}
.content {
position: absolute;
left: 10%;
top: 50%;
}
<div class="container"><div class="content"> This is the content div. It should be 10% from the left of the container div.
</div></div>
内容div出现在页面顶部,无视50%的垂直放置。我想念什么?提前致谢!
绝对定位的元素是从文档的自然流中取出的,这意味着您的容器的高度和宽度为零。
零高和宽度的10%和50%当然为零。
如果您给容器一个高度和宽度,则您的百分比位置将开始按照您的需求工作。
这是一个有效的例子。
.container { position: relative; width:500px; height:500px; }
welp,我在SE中的第一篇文章。对于那些将来看到的人,您实际上可以将视口高度用作百分比的度量。
.container {
position: relative;
top: 10vh; // 10% of height from top of div
}
您可能需要将height: 100%
添加到.container
DIV:
.container { height: 100%; position: relative; }
以及所有祖先元素:
html, body { height: 100%; }
@jaime dixon的答案很棒。美丽,两个伟大的概念。
-
百分比,相对单元相对于某些东西,您必须了解计算这些值的参考容器。
-
即使您有容器,如果容器的尺寸为"自动",也可能会有任意行为。因此,要拥有可预测的行为,请确保容器的维度比简单说"自动"更好。或者,如果您的容器也有100%及其父母等等,请确保您有一个CSS指令,其中指定了元素的高度HTML,Body:
示例:
html, body {
height: desired_value;
}