Html 将文本置于绝对位置的父div';s左上角仅使用CSS

Html 将文本置于绝对位置的父div';s左上角仅使用CSS,html,css,Html,Css,我想在像素上垂直和水平居中显示文本,该像素通常位于绝对定位div的左上角。以下是html: <div style="position:absolute; background-color:#EEEEEE; left:100px; top:100px;"> <div style="position:relative; top:-50%; left:-50%;"> My Centered Text </div> </div&g

我想在像素上垂直和水平居中显示文本,该像素通常位于绝对定位div的左上角。以下是html:

<div style="position:absolute; background-color:#EEEEEE; left:100px; top:100px;">
    <div style="position:relative; top:-50%; left:-50%;">
        My Centered Text
    </div>
</div>

我的居中文本
JSFiddle:

正如您所看到的,html将文本水平居中,而不是垂直居中。“top:-50%”的造型似乎没有任何影响

为什么基于百分比的top会被忽略,而left不会被忽略?我怎样才能使它垂直居中

编辑:

因为我的问题被误解了,这就是我想要的:

试试这个 我删除了ur div,并将其替换为
行高:(父元素的高度)px

将文本居中放置在中间;(垂直方向)

顶部未被忽略。Top特性(当百分比为时)相对于父对象的高度。因为你的父母没有身高,
top
不起作用。当然,除非您以像素为单位设置顶部。

如果您真的想这样做,那么获取计算高度而不设置它的唯一方法是通过Javascript。试试看,它会成功的:

var dv = document.getElementById("dv-align");
dv.style.top = "-" + (dv.offsetHeight/2) + "px";

可能重复的我正在尝试将中心放在div的左上角,而不是div内部。您只需在容器div上设置一个高度,就可以获得所需的效果。是否要从文本高度计算高度?您可以将容器高度设置为
1em
,这样,高度将根据
正文
CSS中设置的字体大小而变化。我需要文本集中在div的左上角,而不是中间。当宽度没有明确定义时,为什么left属性起作用?它没有“明确”定义,但它是由div中的内容定义的,因此,它有一个工作的宽度。因为默认情况下div是
display:block
。此属性将宽度值设置为full,但不设置height值。是否有任何方法将height和width都设置为full?