绝对定位元素忽略“顶部”位置的百分比可能是什么原因?百分比适用于“左”,我可以使用像素和vh垂直定位,而不是百分比。
答案 0 :(得分:2)
这是因为你必须制作绝对元素的父元素 - " position:relative"。那么绝对元素的顶部和左侧字段将获得相对于父级的应用值。
答案 1 :(得分:0)
您需要为其父元素定义布局。
布局可能不是“静态”,如“固定”,“绝对”,“相对”
这将有助于浏览器了解百分比的计算需要在实际中对其父级进行,而不是窗口大小。
答案 2 :(得分:0)
事实证明,有多种方法可以绝对定位元素。以下是不使用父DIV的一种方法:
CSS:
html,body {
width:100%;
height:100%;
background:red;
}
.centered-axis-xy {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
div.cyan5050 {
width:50%;height:50%;
background:cyan;
}
div p {
width:100%;
height:50%;
margin-top: 20vh;
text-align:center;
}
HTML:
<div class="cyan5050 centered-axis-xy">
<p>Content to Display</p>
</div>
通常,如果使用百分比,则需要为DIV标记的百分比提供基础,即包含外部DIV的高度和宽度百分比,或者相对于html和body元素。但是,在这种情况下,由于CSS包含了here提到的响应式定位技术,因为CSS转换配备了translate()function,所以html和body元素的百分比是可选的。 / p>